leetcode.485 最大连续 1 的个数 双指针入门 | 刷题打卡

192 阅读1分钟

一、题目描述

给定一个二进制数组, 计算其中最大连续 1 的个数。

示例

输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

提示

输入的数组只包含 0 和 1 。
输入数组的长度是正整数,且不超过 10,000。

二、思路分析

从双指针标签进入的,本来以为是一道常规的双指针问题,仔细读题发现单指针就能实现了。

遍历数组,使用一个变量计算本次1连续的个数,当遇到0则变量清零,遇到1则累加变量且判断是否需要将变量设为最大连续个数。

var findMaxConsecutiveOnes = function(nums) {
  let max = 0
  let count = 0

  for(let i=0;i<nums.length;i++){
    if(nums[i]){
      count++
      max = max > count ? max : count
    }else{
      count = 0
    }
  }
  return max

};

三、优化

for循环+单指针,好像没什么可优化的了...

END


本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情