#include
using namespace std;
int a[1001], dp[1001];
int main() {
int n;
while (cin >> n) {
for (int i = 1; i <= n; ++i)
cin >> a[i];
int max = 0;
for (int i = 1; i <= n; ++i) {
dp[i] = 1;
for (int j = 1; j < i; ++j) {
if (a[j] < a[i] && dp[i] <= dp[j])
dp[i] = dp[j] + 1;
}
if (dp[i] > max) max = dp[i];
}
cout << max << endl;
}
return 0;
}
水题一道,分析方法见前一篇博客。代码如下:
转载于:https://www.cnblogs.com/sing1ee/archive/2012/02/03/2765007.html