c++简单题解:
用dp[i]表示从第一个数到dp[i]最多走的步数。
#include<iostream> #include<vector> using namespace std; int main() { int n; while(cin>>n) { int dp[n]; int a[n],m=1; for(int i=0; i<n; i++) cin>>a[i]; for(int i=0; i<n; i++) { dp[i]=1; for(int j=0; j<i; j++) if(a[j]<a[i]) dp[i]=max(dp[i],dp[j]+1); m=max(m,dp[i]); } cout << m << endl; } return 0; }