【动态规划】单调递增最长子序列
2014-04-16 20:51
232 查看
Description
设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。 | ||
Input
第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开 | ||
Output
最长单调递增子序列的长度 | ||
Sample Input
5 1 3 5 2 9 | ||
Sample Output
4 |
#include<iostream> using namespace std; #define N 100 int m ; int num ; int main() { int n,i,j,max; while(cin>>n) { for(i=1;i<=n;i++) cin>>num[i]; m[1]=1; for(i=2;i<=n;i++) { max=0; for(j=1;j<=i-1;j++) { if(m[j]>max&&num[i]>num[j]) { max=m[j]; m[i]=max+1; } } } cout<<m <<endl; } return 0; }
相关文章推荐
- 动易2006序列号破解算法公布
- C#数据结构与算法揭秘二
- 浅析STL中的常用算法
- JavaScript 组件之旅(二)编码实现和算法
- java数据结构和算法学习之汉诺塔示例
- python基础教程之python消息摘要算法使用示例
- php的hash算法介绍
- 将15位身份证补全为18位身份证的算法示例详解
- C++算法系列之日历生成的算法代码
- 利用线性表的顺序结构求集合的并、交、差、补(C语言实现)
- 1 2 3 4 5 6 7 8 9 = 110的java实现
- Sedgewick之巨著《算法》,与高德纳TAOCP一脉相承
- 【代码】Pythonの代码片段
- STL中算法
- 数据结构&算法学习
- 算法的时间复杂度
- 算法导论:选择排序的原理与实现
- PHP实现四种常用的排序算法
- 图解插入排序算法
- 一些常见算法的JavaScript实现