leetcode 485题

Posted by franki on October 30, 2022

leetcode 485 最大连续 1 的个数

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

示例1

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

示例2

输入:nums = [1,0,1,1,0,1]
输出:2

思路

使用两个变量分别计算当前连续最大的 count 和最终的最大的 count,遍历结束,即是结果

代码

/**
 * @param {number[]} nums
 * @return {number}
 */
function findMaxConsecutiveOnes(nums) {
    let currCount = 0; totalCount = 0;

    for (const v of nums) {
        if (v === 1) {
            currCount++;
        } else {
            currCount = 0;
        }

        if (currCount > totalCount) {
            totalCount = currCount;
        }
    }

    return totalCount;
}

复杂度分析:

  • 时间复杂度: O(N)
  • 空间复杂度:O(1)