#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N = 1010;
int main()
{
int a[N], n, i, j;
scanf("%d", &n);
for(i = 1; i <= n; i++)
scanf("%d", &a[i]);
int len[N], m;
for(i = 1; i <= n; i++)
{
m = 0;
for(j = 1; j < i; j++)
if(a[j] < a[i] && len[j] > m)
m = len[j];
len[i] = m + 1;
}
int MAX = 0;
for(i = 1; i <= n; i++)
if(len[i] > MAX)
MAX = len[i];
printf("%d", MAX);
return 0;
}
最长上升子序列 LIS
最新推荐文章于 2024-08-05 15:58:50 发布