#include <iostream>
using namespace std;
int main(void)
{
int i,j,n,a[100],b[100],max;
while(cin>>n)
{
for(i=0;i<n;i++)
cin>>a[i];
b[0]=1; //初始化,以a[0]结尾的最长递增子序列长度为1
for(i=1;i<n;i++)
{
b[i]=1; //b[i]最小值为1
for(j=0;j<i;j++)
if(a[i]>a[j]&&b[j]+1>b[i])
b[i]=b[j]+1;
}
for(max=i=0;i<n;i++)//求出整个数列的最长递增子序列的长度
if(b[i]>max)
max=b[i];
cout<<max<<endl;
}
return 0;
}
【LIS】代码记录
最新推荐文章于 2023-02-08 17:08:51 发布