1281:最长上升子序列
# 题目描述
一个数的序列
你的任务,就是对于给定的序列,求出最长上升子序列的长度。
# 输入
输入的第一行是序列的长度
# 输出
最长上升子序列的长度。
# 样例
# 输入样例
7
1 7 3 5 9 4 8
1
2
2
# 输出样例
4
1
# 源代码
#include <algorithm>
#include <cstdio>
#include <iostream>
using namespace std;
int a[1001], f[1001];
int main() {
int i, j, n, maxx = 0;
cin >> n;
for (i = 1; i <= n; i++) cin >> a[i];
for (i = 1; i <= n; i++) {
f[i] = 1;
for (j = 1; j < i; j++)
if (a[j] < a[i]) f[i] = max(f[j] + 1, f[i]);
maxx = max(maxx, f[i]);
}
cout << maxx;
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
上次更新: 2022/03/11, 22:53:12