如:3、1、5、7、2、6、8
依次遍历整个序列,每一次求出从第一个数到当前这个数i的最长上升子序列,直至遍历到最后一个数字为止。然后取数组b中最大的那个即为整个序列的最长上升子序列。
for(i=1;;i++)
for(j=0;j<i;j++)
if(i值>j值)
判断是否 b[j]+1>b[i]
如果是则 b[i]=b[j]+1;
即 sum=max(b[i],b[j]+1);
max=1;
for(int i=0;i<maxn;i++)
{
b[i]=1;
}
for(int i=1;i<n;i++)
{
for(int j=0;j<i;j++)
{
if(a[i]>a[j]&&b[j]+1>b[i])
b[i]=b[j]+1;
if(b[i]>max)
max=b[i];
}
}