# LeetCode算法学习之- 滑动窗口-[674] 最长连续递增序列

116 阅读1分钟

题目

给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。

连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。

分析

  1. 子序列
  2. 连续递增

可以采用滑动窗口的方式

解法:双指针


思路
1. 考虑是连续递子序列=》可以考虑滑动串口
2. 考虑到连续递增 =》 nums[i]>nums[i]
3. 遇到不连续的则直接移动j到i的位置

 */
// @lc code=start
/**
 * @param {number[]} nums
 * @return {number}
 */
var findLengthOfLCIS = function (nums) {
  let max = 1;
  let j = 0;
  for (let i = 1; i < nums.length; i++) {
    if (nums[i - 1] >= nums[i]) {
      j = i;
    }
    max = Math.max(max, i - j + 1);
  }

  return max;
};

//时间复杂度:O(n)
//空间复杂度:O(1)


总结

今天这道题是主要是练习如何使用基本的不固定尺寸的滑动窗口

大家可以看看我分享的一个专栏(前端搞算法)里面有更多关于算法的题目的分享,希望能够帮到大家,我会尽量保持每天晚上更新,如果喜欢的麻烦帮我点个赞,十分感谢

大家如果对“TS”感兴趣的可以看看我的专栏 (TypeScript常用知识),感谢大家的支持

文章内容目的在于学习讨论与分享学习算法过程中的心得体会,文中部分素材来源网络,如有侵权,请联系删除,邮箱 182450609@qq.com

\