最长单调递增子序列问题

题目:设计一个 O( n ^ 2 )复杂度的算法,找出由 n 个数组成的序列的最长单调递增子序列。

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

while (scanner.hasNext()) {

int n = scanner.nextInt();

int[] nums = new int[n + 1];// 数列数据

int[] sub_len = new int[n + 1];// sub_len[i]表示从i到n的最长递增序列的长度

int[] sub_index = new int[n + 1];// sub_index[i]表示第i个数据的后面一个数据的下标

for (int i = 1; i <= n; i++) {

nums[i] = scanner.nextInt();

sub_len[i] = 1;

sub_index[i] = 0;

}

for (int i = n - 1; i >= 1; i--) {

int max = 0, p = 0;// 临时变量

for (int j = i + 1; j <= n; j++) {

if (nums[i] < nums[j] && sub_len[j] > max) {

max = sub_len[j];

p = j;

}

if (p != 0) {

sub_len[i] = sub_len[p] + 1;

sub_index[i] = p;

}

}

}

int max = 0, p = 0;

for (int i = 1; i <= n; i++) {

if (sub_len[i] > max) {

max = sub_len[i];

p = i;

}

}

System.out.println("最长长度:" + max);

System.out.print("最长递增序列:");

while (p != 0) {

System.out.print(nums[p] + " ");

p = sub_index[p];

}

System.out.println();

}

scanner.close();

}

}

原文:http://blog.csdn.net/u011506951/article/details/37074901

java最长单调递增子序列_最长单调递增子序列问题相关推荐

  1. 求序列最长不下降子序列_最长不下降子序列nlogn算法详解

    今天花了很长时间终于弄懂了这个算法--毕竟找一个好的讲解真的太难了,所以励志我要自己写一个好的讲解QAQ 这篇文章是在懂了这个问题n^2解决方案的基础上学习. 解决的问题:给定一个序列,求最长不下降子 ...

  2. 最长单调递增子序列_最长递增子序列(动态规划 + 二分搜索)

    题目 给定数组arr,返回arr的最长递增子序列 举例:arr = [2,1,5,3,6,4,8,9,7],返回的最长递增子序列为[1,3,4,8,9] 要求:如果arr的长度为N,请实现时间复杂度为 ...

  3. java实现最长连续子序列_最长公共子序列/最长公共子串 Python/Java实现

    关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...

  4. java实现最长连续子序列_最长公共子序列 ||

    问题:在 前一篇文章 最长公共子序列 | 的基础上要求将所有的最长公共子序列打印出来,因为最长公共子序列可能不只一种. 难点:输出一个最长公共子序列并不难,难点在于输出所有的最长公共子序列,我们需要在 ...

  5. java 变长参数 知乎_变长参数探究

    前言 变长参数,指的是函数参数数量可变,或者说函数接受参数的数量可以不固定.实际上,我们最开始学C语言的时候,就用到了这样的函数:printf,它接受任意数量的参数,向终端格式化输出字符串.本文就来探 ...

  6. java.sql.connection 长时间不使用_车子长时间停放不使用,要做到这几点!不然报废是小,安全是大...

    汽车的出现,大大方便了人们的日常出行.加上汽车类型多样.售价多元化,目前大部分家庭都拥有一辆汽车.但有些车主在购车之后,就因为各种各样的原因而"冷落"爱车,动不动就将其放置在一旁不 ...

  7. 字符串最长回文子串_最长回文子串

    字符串最长回文子串 Problem statement: 问题陈述: Given a string str, find the longest palindromic substring. A sub ...

  8. 七星彩长奖表图_七星彩长奖表图 长条

    游戏介绍 一款特殊玩法的趣味彩票软件,一款非常不错的手机彩票软件. 详细介绍 七星彩长奖表图 长条的版本能够让用户们去了解到各种不同的彩票玩法,并且这个版本还是一定牛的版本,这个版本可以让用户们去感受 ...

  9. 谷歌浏览器怎么长截图怎么截_谷歌浏览器长截图怎么截图_chrome谷歌浏览器截长图的步骤-win7之家...

    大家在使用浏览器浏览网页的时候,有时候会想要将网页截取下来,可是如果使用平时用的截图工具的话,只能截取一部分而已,如果你使用的是谷歌chrome浏览器的话,就可以进行长截图了,那么谷歌浏览器长截图怎么 ...

最新文章

  1. WTForms 小计1 forms
  2. 机器人学习--路径规划--A*算法实现
  3. c语言编写经验逐步积累3
  4. 《敏捷软件开发过程及最佳实践》培训总结
  5. 小霸王消失,好记星落灰,谁能“取悦”10后?
  6. 常用CSS代码片段常见css bug
  7. slf4j + log4j2配置日志引擎
  8. vue element table 修饰
  9. SAP License:药店ERP系统如何实施
  10. ubuntu16.04--cuda
  11. C++ 学习笔记----基础篇
  12. 常见面试算法:回归、岭回归、局部加权回归
  13. 第三章 授权——《跟我学Shiro》[张开涛]
  14. tensorflow出现问题Passing (type, 1) or 1type as a synonym of type is deprecated
  15. java offset函数的使用方法_js的offset是什么意思及使用详解
  16. 天龙八部元宝兑换代码
  17. pytorch神经网络实现
  18. 手风琴几排簧好_手风琴三排簧和四排簧的区别
  19. 深入分析分布式系统中互斥性与幂等性问题
  20. 福禄克DSX2-8000 DSX2-5000 业以太网连接器集锦DSX-CHA021S

热门文章

  1. linux shell,sh,bash的含义
  2. printf()的转换说明修饰符
  3. Fiddler实战深入研究(二)
  4. ros navigation 中的amcl编译和运行
  5. AndroidIPC通信之AIDL
  6. Ansible搭建LNMP
  7. 开源绣花使用EmbroiderModder创建小众针迹
  8. python实现文件传输
  9. Template、ItemsPanel、ItemContainerStyle、ItemTemplate
  10. java我的世界mod制作_我的世界:MOD的编写有多复杂,估计你也学不会