求数组的最长递增子序列的长度
2012-09-13 03:32
281 查看
数组的最长递增子序列的长度
给定数组arr[0:n-1],求最长递增子序列的长度。例如,给定数组1,-1,2,-3,4,-5,6,-7,最长递增子序列为1,2,4,6。
我们可以对最长递增子序列的特点进行分析。分析结果如下:
arr[0:k-1]的最长递增子序列,可能不止一个,但是这些最长递增子序列的长度都相等,设为len[k-1]。
arr[0:k]的最长递增子序列的长度 大于等于 arr[0:k-1]的最长递增子序列的长度. 也即len[k]>=len[k-1].
如果arr[0:k]的最长递增子序列的长度 等于 arr[0:k-1]的最长递增子序列的长度,要么1)arr[0:k]的最长递增子序列和arr[0:k-1]的最长递增子序列相同;要么2)arr[0:k-1]的长度为len[k-1]-1的递增子序列加上arr[k],构成arr[0:k]的最长递增子序列。
如果len[k]>len[k-1],那么一定是len[k]=len[k-1]+1.
如果arr[0:k]的最长递增子序列的长度 比 arr[0:k]的最长递增子序列的长度 大一,那么,arr[0:k]的最长递增子序列一定是arr[0:k-1]的最长递增子序列加上arr[k]构成。(注意,arr[0:k]的最长递增子序列可能不止一个)
举个例子,设arr[0:7]={1,-1,2,-3,4,-5,6,-7}. 那么,arr[0:3]的最长递增子序列有:{1,2}和{-1,2},arr[0:4]的最长递增子序列一定是:{1,2,4}和{-1,2,4}.(注意,arr[4]=4).
根据上面的观查,可以得出下面的结论:
已知,arr[0:k-1]的最长子序列的长度是len[k-1],如果arr[k]加入到arr[0:k-1]的最长子序列后,新的序列仍然递增,那么新的序列就是arr[0:k]的最长子序列,如果,新的序列不再是递增序列,那么arr[0:k]的最长递增子序列和arr[0:k]的最长递增子序列是一样的。
根据上面的结论,不能写出解决该问题的程序。
给定数组arr[0:n-1],求最长递增子序列的长度。例如,给定数组1,-1,2,-3,4,-5,6,-7,最长递增子序列为1,2,4,6。
我们可以对最长递增子序列的特点进行分析。分析结果如下:
arr[0:k-1]的最长递增子序列,可能不止一个,但是这些最长递增子序列的长度都相等,设为len[k-1]。
arr[0:k]的最长递增子序列的长度 大于等于 arr[0:k-1]的最长递增子序列的长度. 也即len[k]>=len[k-1].
如果arr[0:k]的最长递增子序列的长度 等于 arr[0:k-1]的最长递增子序列的长度,要么1)arr[0:k]的最长递增子序列和arr[0:k-1]的最长递增子序列相同;要么2)arr[0:k-1]的长度为len[k-1]-1的递增子序列加上arr[k],构成arr[0:k]的最长递增子序列。
如果len[k]>len[k-1],那么一定是len[k]=len[k-1]+1.
如果arr[0:k]的最长递增子序列的长度 比 arr[0:k]的最长递增子序列的长度 大一,那么,arr[0:k]的最长递增子序列一定是arr[0:k-1]的最长递增子序列加上arr[k]构成。(注意,arr[0:k]的最长递增子序列可能不止一个)
举个例子,设arr[0:7]={1,-1,2,-3,4,-5,6,-7}. 那么,arr[0:3]的最长递增子序列有:{1,2}和{-1,2},arr[0:4]的最长递增子序列一定是:{1,2,4}和{-1,2,4}.(注意,arr[4]=4).
根据上面的观查,可以得出下面的结论:
已知,arr[0:k-1]的最长子序列的长度是len[k-1],如果arr[k]加入到arr[0:k-1]的最长子序列后,新的序列仍然递增,那么新的序列就是arr[0:k]的最长子序列,如果,新的序列不再是递增序列,那么arr[0:k]的最长递增子序列和arr[0:k]的最长递增子序列是一样的。
根据上面的结论,不能写出解决该问题的程序。
相关文章推荐
- 动态规划-数组最长递增子序列长度
- 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱).
- 算法题-数组的最长递增子序列
- 无序整形数组,如何找到最长连续序列长度,时间复杂度O(n)
- 求数组中最长递增子序列的长度
- Q:求数组中最长递增子序列的长度.
- 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱). 第二解
- 求数组中最长递增子序列的长度
- (Relax 后缀数组1.2)POJ 3261 Milk Patterns(求一个长度为n的整数序列中,至少出现k次的子序列的最长的长度)
- 一维数组中最长递增子序列的长度(DP做法)
- 【DP】计算一个数组的最长递增子序列
- 最长递增子序列的长度
- 数组中最长递增子序列的长度
- 阿里算法工程师校招面试之-找最长的连续递增子数组的长度
- 获取一个数组中最长的连续的元素序列。例如,给定了[31,6,32,1,3,2],最长的连续的元素序列是[1,2,3],返回其长度3
- 无序数组中最长非降子序列长度
- Java求给定数组的最长递增子序列
- 求数组的最长递增子序列
- 求数组的最长递增子序列
- 求数组的最长递增子序列VS吉哥系列故事——完美队形