AcWing 895. 最长上升子序列
原题链接
简单
作者:
阿飞被注册了
,
2021-05-31 18:05:39
,
所有人可见
,
阅读 283
C++ 代码
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
const int N = 1e3+10;
int a[N], f[N];
int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i++)
cin >> a[i];
for(int i = 0; i < n; i++)
{
f[i] = 1;//初始自身为最长子序列长度为1
for(int j = 0; j < i; j++)
if(a[i] > a[j])//不断用比a[i]小的数的子序列去更新a[i].
f[i] = max(f[i], f[j]+1);
}
int ans = 0;
//最后取最大值。
for(int i = 0; i < n; i++)
ans = max(ans, f[i]);
cout << ans;
return 0;
}