2020.8.10
1.面试题:
2.算法题:
485
给定一个二进制数组, 计算其中最大连续1的个数。
例:
输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是3。/** * @param {number[]} nums * @return {number} */ var findMaxConsecutiveOnes = function(nums) { var i; var a=0; var b=0; var c; for(i=0;i<nums.length;i++){ if(nums[i]==1){ a++; } else{ c=a; if(b>c){ } else{ b=c; } a=0; } } if(b>a){ return b; } else{ return a; } };
思路:a:计数1的数量,c:记录当前一次连续1的数量,b:记录最大连续1的数量;便利数组,判断是否为1;如果是,则a+1,反之则将当前连续1的数量赋值给c,判断b和c的大小,将其中大的值放在b中,遍历完以后,要考虑一种特殊情况,即数组仅有一个值,判断b与a的大小来判断是否仅有一个值,然后返回最大值。