2023.8.24
与最长递增子序列 类似,不同的是, 本题要求连续序列,所以不需要第二层遍历比较之前所有的元素了,只需要比较上一个元素i-1。 dp[i]的含义为:以nums[i]元素为结尾的序列的最长递增子序列。 注意这里是以i为结尾,而不是i之前的元素。 代码如下:
class Solution {
public:int findLengthOfLCIS(vector<int>& nums) {vector<int> dp(nums.size() , 1);int ans = 1;for(int i=1; i<nums.size(); i++){if(nums[i]>nums[i-1]) dp[i]=dp[i-1]+1;ans = max(ans,dp[i]);}return ans;}
};
本题与最长递增子序列 的区别在于:不连续递增子序列和前i-1个元素都有关,而连续递增子序列只和前1个元素有关。