• 485. 最大连续1的个数


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

    示例 1:

    输入: [1,1,0,1,1,1]

    输出: 3

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

    注意:

    输入的数组只包含 0 和1。

    输入数组的长度是正整数,且不超过 10,000。

     1/**
    2 * @param {number[]} nums
    3 * @return {number}
    4 */

    5
    6var findMaxConsecutiveOnes = function (nums) {
    7    if(!nums.includes(0)) return nums.length
    8    var a = [], l = 0
    9    // 找0
    10    for(var i=0; i<nums.length; i++) {
    11        if(nums[i]===0) {
    12            a.push(i)
    13        }
    14    }
    15
    16    // 第一个0前面的1; ex [1,1,1,0,1,1,0,1,1,1,1]
    17    l = a[0]
    18    // 最后一个0后面的1;
    19    var idx = a[a.length-1]
    20    if(nums.length - 1 - idx > l) {
    21        l = nums.length - 1 -idx
    22    }
    23    // 相邻两个0之间的1
    24    for(var j=0; j<a.length-1; j++) {
    25        if(a[j+1] - a[j] - 1 > l) {
    26            l = a[j+1] - a[j] - 1
    27        }
    28    }
    29    return l
    30}
  • 相关阅读:
    day_10作业
    day_10
    day_09
    day_08
    猜年龄游戏
    day_07
    day_06作业
    day05课堂小结
    day05作业
    day04课堂小结
  • 原文地址:https://www.cnblogs.com/rencoo/p/9774090.html
Copyright © 2020-2023  润新知