这个嘛,我觉得是m[i]=max(m[0~i-1])+1;完了复杂度是O(n^2/2);
书上开了一个辅助数组d[],就很nice,思想是如果m[i]>d[最后一个],辣么直接添加进来,
如果m[i] 当然也可以dp 代码嘛…… #include int n,m=1; for(int i = 0; i < n; i++) {
#include
using namespace std;
const int MAX = 1000;
int a[MAX],dp[MAX];
int main(){
cin >> n;
for(int i = 0; i < n; i++)
cin >> a[i];
dp[i] = 1;
for(int j = 0; j < i; j++) {
if(a[j] < a[i] && dp[i] < dp[j] + 1)
dp[i] = dp[j] + 1;
}
}
for(int i=0;i
}
cout << m << endl;
return 0;
}