参考:
class Solution { public: int lengthOfLIS(vector<int>& nums) { int res = 0; vector<int> dp(nums.size(), 1); // dp[i]:以nums[i]结尾的递增子序列的长度; for(int i = 1; i < nums.size(); i++){ for(int j =0; j < i; j++){ if(nums[i]>nums[j]){ // 看nums[i]接在前面那一个元素的后面,递增子序列最长 dp[i] = max(dp[i], dp[j]+1); } } } for(int i = 0; i < dp.size(); i++) res = max(res, dp[i]); return res; } };