动态规划-LIS
来源:互联网 发布:dm500账号上传软件 编辑:程序博客网 时间:2024/05/19 17:49
最长递增子序列(LIS)的问题是要找到一个给定序列的最长子序列的长度,使得子序列中的所有元素被排序的顺序增加。
例如,{10,22,9,33,21,50,41,60,80} LIS的长度是6和 LIS为{10,22,33,50,60,80}。
最优子结构:
对于长度为N的数组A[N] = {a0, a1, a2, …, an-1},假设假设我们想求以aj结尾的最大递增子序列长度,设为L[j],那么L[j] = max(L[i]) + 1, where i < j && a[i] < a[j], 也就是i的范围是0到j – 1。这样,想求aj结尾的最大递增子序列的长度,我们就需要遍历j之前的所有位置i(0到j-1),找出a[i] < a[j],计算这些i中,能产生最大L[i]的i,之后就可以求出L[j]。之后我对每一个A[N]中的元素都计算以他们各自结尾的最大递增子序列的长度,这些长度的最大值,就是我们要求的问题——数组A的最大递增子序列。
int LIS(int a[],int length) { int distance[length]; for(int i=0;i<length;i++) { distance[i] = 1; for(int j=0;j<i;j++) { if(a[j]<a[i] && (distance[j]+1) > distance[i]) distance[i] = distance[j]+1; } } int longestDistance = distance[0]; for(int i=1;i<length;i++){ if(distance[i] > longestDistance) longestDistance = distance[i]; } return 0;}
0 0
- 动态规划---LIS
- 动态规划---LIS
- 动态规划 LCS,LIS
- 动态规划-LIS
- 动态规划 LIS
- Sicily LIS |动态规划
- 动态规划--LIS练习
- 动态规划 — LIS
- 合唱队形(LIS) 动态规划
- hdu1087 动态规划入门LIS
- 动态规划--LIS与LCS
- 动态规划——LIS问题
- 动态规划-最长上升子序列LIS
- UVA10534-----Wavio Sequence-----动态规划之LIS
- 动态规划-最长递增序列(LIS)【模板】
- 最少拦截系统-动态规划LIS
- 动态规划之LCS和LIS
- 动态规划总结之 LIS ,LCS
- Oracle logminer使用方法总结
- Metronic V4.5.2 Responsive Admin Dashboard Template build with Twitter Bootstrap 3.3.5
- Android之ThreadPoolExecutor
- 基于RecyclerView-添加上啦加载(AndroidStudio)
- VS中为代码添加虚线
- 动态规划-LIS
- 关于select标签的value
- 消除字号标签<h1><h2><h3>的自动换行
- ASP.net(NVelocity)中浏览器端与服务器端频繁交互传值的问题
- 关于C#中对象用作属性
- EF实体框架模型使用Linq获取数据库数据
- 如何在路由器的局域网下使用IIS发布网页
- cocos2dx-JS 多行多列TableView
- 将CAD数据转为shp