动态规划:300、最长递增子序列
作者:互联网
思路:最值的求取一般都是使用动态规划,我们首先求取以i结尾的最长子序列,然后求出最大值。
class Solution {
public:
int lengthOfLIS(vector<int>& nums) {
int n=nums.size();
//每一位的子序列长度为1
vector<int>dp(n+1,1);
for(int i=0;i<nums.size();i++){
for(int j=0;j<i;j++){
//只有大于时才更新以i结尾的子序列值
if(nums[i]>nums[j])
dp[i]=max(dp[i],dp[j]+1);
}
}
int res=0;
for(int i=0;i<dp.size();i++){
res=max(res,dp[i]);
}
return res;
}
};
标签:nums,300,递增,int,求取,序列,动态,dp 来源: https://blog.csdn.net/carolineme/article/details/111356428