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}
原文地址:https://www.cnblogs.com/rencoo/p/9774090.html