//动态规划法
//LIS(时间复杂度为n平方)
#include <iostream>
#include <cstring>
#define N 1000
using namespace std;
int LIS(int A[], int length)
{
int d[N];
for(int i=1;i<N;i++) d[i]=1;
d[0]=0;
for(int i=1;i<=length;i++)
{
for(int j=1;j<i;j++)
{
if(A[j]<A[i] && (d[j]+1)>d[i]) d[i]=d[j]+1;
}
}
return d[length];
}
int main(int argc, char *argv[])
{
int length; cin >> length;
int A[N];
for(int i=1;i<=length;i++) cin >> A[i];
cout << LIS(A,length) <<endl;
cout << "Hello World!" << endl;
return 0;
}
最长非递减子序列LIS(动态规划法,一维)
最新推荐文章于 2024-07-05 20:10:45 发布