数组674. 最长连续递增序列
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组674. 最长连续递增序列相关的知识,希望对你有一定的参考价值。
题目:
解答:
思路:滑动窗口。
每个(连续)增加的子序列是不相交的,并且每当 nums[i-1]>=nums[i] 时,每个此类子序列的边界都会出现。当它这样做时,它标志着在 nums[i] 处开始一个新的递增子序列,我们将这样的 i 存储在变量 anchor 中。
例如,如果 nums=[7,8,9,1,2,3],那么 anchor 从 0 开始(nums[anchor]=7),并再次设置为 anchor=3(nums[anchor]=1)。无论 anchor 的值如何,我们都会记录 i-anchor+1 的候选答案、子数组 nums[anchor]、nums[anchor+1]、…、nums[i] 的长度,并且我们的答案会得到适当的更新。
1 class Solution { 2 public: 3 int findLengthOfLCIS(vector<int>& nums) 4 { 5 int ans = 0; 6 int anchor = 0; 7 for (int i = 0; i < nums.size(); ++i) 8 { 9 if (i > 0 && nums[i-1] >= nums[i]) 10 { 11 anchor = i; 12 } 13 ans = std::max(ans, i - anchor + 1); 14 } 15 return ans; 16 } 17 };
以上是关于数组674. 最长连续递增序列的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 674. 最长连续递增序列(Longest Continuous Increasing Subsequence) 18