java最长单调递增子序列_最长单调递增子序列问题
最长单调递增子序列问题
题目:设计一个 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最长单调递增子序列_最长单调递增子序列问题相关推荐
- 求序列最长不下降子序列_最长不下降子序列nlogn算法详解
今天花了很长时间终于弄懂了这个算法--毕竟找一个好的讲解真的太难了,所以励志我要自己写一个好的讲解QAQ 这篇文章是在懂了这个问题n^2解决方案的基础上学习. 解决的问题:给定一个序列,求最长不下降子 ...
- 最长单调递增子序列_最长递增子序列(动态规划 + 二分搜索)
题目 给定数组arr,返回arr的最长递增子序列 举例:arr = [2,1,5,3,6,4,8,9,7],返回的最长递增子序列为[1,3,4,8,9] 要求:如果arr的长度为N,请实现时间复杂度为 ...
- java实现最长连续子序列_最长公共子序列/最长公共子串 Python/Java实现
关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...
- java实现最长连续子序列_最长公共子序列 ||
问题:在 前一篇文章 最长公共子序列 | 的基础上要求将所有的最长公共子序列打印出来,因为最长公共子序列可能不只一种. 难点:输出一个最长公共子序列并不难,难点在于输出所有的最长公共子序列,我们需要在 ...
- java 变长参数 知乎_变长参数探究
前言 变长参数,指的是函数参数数量可变,或者说函数接受参数的数量可以不固定.实际上,我们最开始学C语言的时候,就用到了这样的函数:printf,它接受任意数量的参数,向终端格式化输出字符串.本文就来探 ...
- java.sql.connection 长时间不使用_车子长时间停放不使用,要做到这几点!不然报废是小,安全是大...
汽车的出现,大大方便了人们的日常出行.加上汽车类型多样.售价多元化,目前大部分家庭都拥有一辆汽车.但有些车主在购车之后,就因为各种各样的原因而"冷落"爱车,动不动就将其放置在一旁不 ...
- 字符串最长回文子串_最长回文子串
字符串最长回文子串 Problem statement: 问题陈述: Given a string str, find the longest palindromic substring. A sub ...
- 七星彩长奖表图_七星彩长奖表图 长条
游戏介绍 一款特殊玩法的趣味彩票软件,一款非常不错的手机彩票软件. 详细介绍 七星彩长奖表图 长条的版本能够让用户们去了解到各种不同的彩票玩法,并且这个版本还是一定牛的版本,这个版本可以让用户们去感受 ...
- 谷歌浏览器怎么长截图怎么截_谷歌浏览器长截图怎么截图_chrome谷歌浏览器截长图的步骤-win7之家...
大家在使用浏览器浏览网页的时候,有时候会想要将网页截取下来,可是如果使用平时用的截图工具的话,只能截取一部分而已,如果你使用的是谷歌chrome浏览器的话,就可以进行长截图了,那么谷歌浏览器长截图怎么 ...
最新文章
- WTForms 小计1 forms
- 机器人学习--路径规划--A*算法实现
- c语言编写经验逐步积累3
- 《敏捷软件开发过程及最佳实践》培训总结
- 小霸王消失,好记星落灰,谁能“取悦”10后?
- 常用CSS代码片段常见css bug
- slf4j + log4j2配置日志引擎
- vue element table 修饰
- SAP License:药店ERP系统如何实施
- ubuntu16.04--cuda
- C++ 学习笔记----基础篇
- 常见面试算法:回归、岭回归、局部加权回归
- 第三章 授权——《跟我学Shiro》[张开涛]
- tensorflow出现问题Passing (type, 1) or 1type as a synonym of type is deprecated
- java offset函数的使用方法_js的offset是什么意思及使用详解
- 天龙八部元宝兑换代码
- pytorch神经网络实现
- 手风琴几排簧好_手风琴三排簧和四排簧的区别
- 深入分析分布式系统中互斥性与幂等性问题
- 福禄克DSX2-8000 DSX2-5000 业以太网连接器集锦DSX-CHA021S