10 | 9 | 2 | 5 | 3 | 7 | 101 | 18 |
---|---|---|---|---|---|---|---|
1 | 1 | 1 | 2 | 2 | 3 | 4 | 4 |
int lengthOfLIS(vector<int>& nums) {
if(nums.empty()) return 0;
int size = nums.size();
vector<int> dp(size);
dp[0]=1;
int res = 1;
for(int i=1;i<size;++i){
int max_val = 0;
for(int j=0;j<i;++j){
if(nums[i]>nums[j])//nums[i]为子序列的最后一个元素
max_val = max(max_val,dp[j]);
}
dp[i] = max_val + 1;
res = max(res,dp[i]);
}
return res;
}