一、题目描述
给定一个二进制数组, 计算其中最大连续 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 春招闯关活动」, 点击查看 活动详情