485. Max Consecutive Ones
Leetcode 问题: 485. Max Consecutive Ones
Categories:
题目
Given a binary array
nums
, return the maximum number of consecutive 1’s in the array.
传入一个整数阵列 nums
,回传连续出现 1 的次数是多少
Example
Input: nums = [1,1,0,1,1,1]
Output: 3
Explanation: The first two digits or the last three digits are consecutive 1s. The maximum number of consecutive 1s is 3.
Input: nums = [1,0,1,1,0,1]
Output: 2
演算法
1. 找寻 1
当出现 1,则计数器 +1
,然后纪录目前抓到的计数器最大值
2. 不是 1
重设整个计数器,重新寻找
答案
JavaScript
function findMaxConsecutiveOnes(numsList) {
// 最多连续出现 1 次数
var maxConsecutiveOneCount = 0;
// 目前 1 出现次数
var currentOneCount = 0;
for (var i = 0; i < numsList.length; i++) {
// 目前的数字
var currentNumber = numsList[i];
if (currentNumber == 1) {
// 如果目前数字是 1,计算 1 出现次数
currentOneCount++;
// 比较「最多连续出现 1 次数」与「目前 1 出现次数」取最大值
maxConsecutiveOneCount = Math.max(maxConsecutiveOneCount, currentOneCount);
}
else {
// 如果目前数字不是 1,重新计算 1 出现次数
currentOneCount = 0;
}
}
return maxConsecutiveOneCount;
}
TypeScript
function findMaxConsecutiveOnes(numsList: number[]): number {
// 最多连续出现 1 次数
let maxConsecutiveOneCount = 0;
// 目前 1 出现次数
let currentOneCount = 0;
for (let i = 0; i < numsList.length; i++) {
// 目前的数字
let currentNumber = numsList[i];
if (currentNumber == 1) {
// 如果目前数字是 1,计算 1 出现次数
currentOneCount++;
// 比较「最多连续出现 1 次数」与「目前 1 出现次数」取最大值
maxConsecutiveOneCount = Math.max(maxConsecutiveOneCount, currentOneCount);
} else {
// 如果目前数字不是 1,重新计算 1 出现次数
currentOneCount = 0
}
}
return maxConsecutiveOneCount;
};