动态规划:
dp数组:记录以第i个元素为结尾的子数组的长度
dp公式: dp[i] = max(dp[i],dp[j]+1); dp[j]为j<i且nums[j]<nums[i]的元素
class Solution {
public:
/*动态规划*/
int lengthOfLIS(vector<int>& nums) {
if(nums.empty()){
return 0;
}
vector<int> dp(nums.size()+1,1);
int ans = 1;
for(int i=1;i<nums.size();i++){
for(int j=0;j<i;j++){
if(nums[i]>nums[j]){
dp[i] = max(dp[i],dp[j]+1);
ans = max(ans,dp[i]);
}
}
}
return ans;
}
};