2021/01/24 每日一题 最长连续递增序列

LeetCode上最长连续递增序列,今天又是简单难度了,可以重拳出击

假设传入数组[1,3,5,4,2,3,4,5],人眼倒是可以马上分成[1,3,4]和[2,3,4,5]两段,并且最长的那段长度为4,即返回4

那么程序中间就可以开始遍历,如果出现nums[i + 1] <= nums[i]的情况,即后一位小于当前位置,那么就是出现了减少或者相等的情况,那么这个递增趋势就是结束了。

需要多设置一个参数用于保存每次断开的时候的最大长度

比如上面这个数组[1,3,5,4,2,3,4,5]出现这个情况的时候分别是i=2、i=3的时候,即4、2
在程序中设置了一个变量ans用于保存上一次递增的长度,res是计数位,从1开始,每次出现nums[i + 1] > nums[i]的情况res就自增,然后出现nums[i + 1] <= nums[i]的情况的时候,就先保存等下次再出现这个情况的时候,就会对比resans,上次递增的长度和这次递增的长度保存长的那次,并且还要将计数变量初始化

   var findLengthOfLCIS = function(nums) {
     // 遍历就完事
     // 有可能出现中间断开了,后面有出现相连的情况
     // 计数位
     let res = 1
     // 返回结果
     let ans = 1
     if (!nums.length) return 0
     for(let i = 0; i < nums.length; i++) {
      //   console.log(nums[i]);
        if(nums[i + 1] > nums[i]) {
         // 后一位大于当前元素的情况 
         // 计数结果+1
         res += 1
        } else {
          // 当前元素大于等于后一位的情况
          // 因为会出现断开的情况,这里保存下结果,然后和断开之后的数据对比
          // 如果断开后累加的数据比之前的大,就设置为大的那个 
          ans = res > ans ? res : ans
          // 复原计数位
          res = 1
         }
     }
     return ans
   };

你可能感兴趣的:(2021/01/24 每日一题 最长连续递增序列)