题目描述
在一个数字序列中,找到一个最长的子序列(可以不连续),使得这个子序列是不下降(非递减)的。
例如,现有序列A = {1,3,4,2},从左到右开始,
{1}的子序列只有1,最长上升序列长度为1;
{1,3}最长上升序列为{1,3},长度为2;
{1,3,4}最长上升序列为{1,3,4},长度为3;
{1,3,4,2,}最长上升序列为{1,2,2},长度为3。
所有的上升子序列中,长度最长的序列为{1,3,4}、{1,2},其中长度为2;
从以上例子,找出其中的关系,设a[MAX]为序列,L[MAX]为长度。以上述为例子:
a[0]的长度为L[0]为1;
a[1]的长度为L[1]为2;
a[2]的长度为L[2]为3;
a[3]的长度为L[3]为2。
画出关系图
解题思路
可以看出,L[n]的长度并不用每一次循环来计算,只需要将之前L[n-m] (m<n) </