动态规划:最长上升子序列
来源:互联网 发布:华为数据库一体机 编辑:程序博客网 时间:2024/06/15 13:28
你的任务,就是对于给定的序列,求出最长上升子序列的长度。
71 7 3 5 9 4 8
4
思路如下:
1.建立数组存储状态,maxn[i]存储前i个数中以第i个数为结尾的最长上升子序列的长度;
2.得到状态转移方程:如果a[i]>a[j],那么maxn[i]=maxn[j]+1(j从1循环到i-1);
3.利用二重循环实现,最后检索数组找到最大值;
代码如下:
#include<bits/stdc++.h>using namespace std;int main(){ int i,j,n,max,a[1005],maxn[1005]; cin>>n; for(i=0;i<n;i++) cin>>a[i]; maxn[0]=1; for(i=1;i<n;i++) { max=0; for(j=0;j<i;j++) { if(a[i]>a[j]) //求以a[i]为结尾的最长上升子序列,只保存最大值 if(max<maxn[j]) max=maxn[j]; } maxn[i]=max+1; } max=0; for(i=0;i<n;i++) //检索最大值 if(max<maxn[i]) max=maxn[i]; cout<<max<<endl;}
0 0
- 动态规划:最长上升子序列
- 动态规划-最长上升子序列LIS
- 动态规划求最长上升子序列
- 【算法】动态规划 最长上升子序列
- 动态规划:最长上升子序列
- poj2533 动态规划+最长上升子序列
- POJ2533 动态规划 (最长上升子序列)
- 动态规划--最长上升子序列
- 动态规划-最长上升子序列【LIS】
- 动态规划之最长上升子序列
- 动态规划 LIS最长上升子序列
- 动态规划-最长上升子序列
- 动态规划:求最长上升子序列
- 动态规划-最长上升子序列
- 动态规划(最长上升子序列)
- 动态规划:最长上升子序列
- 【动态规划】 之 最长上升子序列
- 【原创】【动态规划】最长上升子序列
- 理解Mysql_fetch_row()返回查询结果
- 生成全排列
- 关于ViewPager设置属性页setCurrentItem会阻塞主线程ANR总结
- Spring redis listener container配置问题
- 动态规划 02 (最大子矩阵)
- 动态规划:最长上升子序列
- 简单枚举类型——植物与颜色
- 第八天2017/04/17(1、拷贝构造、❤临时对象)
- iOS webView加载本地html、css、js文件
- 常用函数
- 使用phpexcel导出大容量数据时出现的相关问题
- Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2) C. Voltage Keepsake
- 奇舞学院学习笔记之JavaScript一页通
- Lua学习笔记(四)