解题思路:
(1)动态规划
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
int helper(vector<int> &v) {
vector<int> v1(v.size(),1);
int maxlen=v1[0];
for(int i=0;i<v.size();i++) {
for(int j=0;j<i;j++) {
if(v[j]<v[i])
v1[i]=max(v1[i],v1[j]+1);
}
if(maxlen<v1[i]) maxlen=v1[i];
}
return maxlen;
}
int main() {
int n;
while(cin>>n) {
vector<int> v(n,0);
for(int i=0;i<n;i++) {
cin>>v[i];
}
cout<<helper(v)<<endl;
}
return 0;
}