最长单调递增子序列——动态规划
来源:互联网 发布:易娱网络太古汇39楼 编辑:程序博客网 时间:2024/06/05 09:30
题目描述:
给定一个序列X[0···n],找出它的最长的单调递增子序列(Longest Increasing Subsequence)
解题思路:
使用动态规划方法。
对于i= 1, 2, ……,n,考虑以xi作为最后项的最长递增子序列的长度C[i].
如果在xi项前面存在xj < xi , 那么 C[i] = max{C[j]} +1;否则,C[i] = 1.
因此,
C[i] = max{C[j]} + 1, 存在j,1<=j<i, xj<xiC[i] = 1, 所有j,1<=j<i, xj>xiC[1] = 1
在计算C[i]的时候,用k[i] 记录C[i]取得最大值时候j的值。
如果不存在这样的j,令k[i] = 0。
这个记录用于追踪解。
所求的最长递增子序列的长度是:
C = max{C[i] | i=1,2,……,n}
对于每个i,需要检索比i小的所有的j,需要O(n)的时间,i的取值有n种,所以算法时间复杂度是:
W(n) = O(n^2)
1 0
- 最长单调递增子序列——动态规划
- 动态规划——单调递增最长子序列
- 动态规划:最长单调递增子序列
- 动态规划--最长单调递增子序列
- 【动态规划】单调递增最长子序列
- 最长单调递增子序列--动态规划
- NYOJ - 17 - 单调递增最长子序列(动态规划--LIS--单调递增最长子序列)
- 动态规划题目一:最长单调递增子序列
- nyoj17单调递增最长子序列--动态规划-初步
- 动态规划之单调递增最长子序列
- 动态规划-单调递增最长子序列(三)
- NYOJ17 单调递增最长子序列 【二分法】+【动态规划】
- 单调递增最长子序列--动态规划的经典题目
- 利用动态规划找出最长公共单调递增子序列
- ny17单调递增最长子序列(动态规划)
- 单调递增最长子序列 (动态规划经典题)
- NYOJ 17 单调递增最长子序列(动态规划)
- 单调递增最长子序列(动态规划)
- Spring @EnableWebMvc
- [网络编程] Linux网络编程经典书籍
- 多播
- 手机充电误区及该如何充电
- springMVC bootstarp 用户权限基础框架+即时通讯
- 最长单调递增子序列——动态规划
- 使用pkg-config升级和切换glib库
- Core Graphics图形变换
- pythonanywhere下django无法匹配url问题解决
- 【Android UI】SlidingTabLayout使用小结
- ArcGIS API for JavaScript 需要在DoJo中加载的资源
- 聚类算法实践(1)——层次、K-means聚类
- JOGL测试
- bind query.c