//最长上升子序列
#include <stdio.h>
#include <algorithm>
using namespace std;
const int MAXN = 1010;
int A[MAXN], dp[MAXN];
int main() {
int n, ans = 1;
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
scanf("%d", &A[i]);
}
dp[0] = 1;
for (int i = 1; i < n; ++i) {
dp[i] = 1;
for (int j = 0; j < i; ++j) {
if (A[j] <= A[i] && dp[j] + 1 > dp[i]) {
dp[i] = dp[j] + 1;
}
}
ans = max(ans, dp[i]);
}
printf("%d\n", ans);
return 0;
}
问题 A: 最长上升子序列
最新推荐文章于 2021-01-31 16:38:16 发布