300.最长递增子序列
class Solution {
public:
int lengthOfLIS(vector<int>& nums) {
if(nums.size()<=1) return nums.size();
vector<int> dp(nums.size(),1);
int result = 0;
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);
}
if(dp[i]>result) result = dp[i];
}
return result;
}
};
//最终的结果并非dp[nums.size()-1],最后一个数值,可能不符合递增条件
674. 最长连续递增序列
class Solution {
public:
int findLengthOfLCIS(vector<int>& nums) {
if(nums.size()==0) return 0;
int result = 1;
vector<int> dp(nums.size(),1);
for(int i = 0;i<nums.size()-1;i++)
{
if(nums[i+1]>nums[i]) dp[i+1] = dp[i] + 1;
if(dp[i+1]>result) result = dp[i+1];
}
return result;
}
};
//本题主要体现在连续,第二个for循环,无需从头开始