一、题目描述
给定一个二进制数组 nums
, 计算其中最大连续 1
的个数。
示例 1:
输入:nums = [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3。
示例 2:
输入:nums = [1,0,1,1,0,1] 输出:2
提示:
1 <= nums.length <= 105
nums[i]
不是0
就是1。
二、题目解析
为了得到数组中最大连续 1 的个数,需要遍历数组
三、代码参考
1、Java
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
// 最后一个零的索引下标值
int lastZore = -1;
// 返回最大连续1的结果
int result = 0;
// 遍历数组
for(int i = 0; i < nums.length; i++){
if(nums[i] == 0){
// 当前数组元素为零,则更新索引下标值
lastZore = i;
} else {
// 通过 lastZero 可以获取当前元素距离最前面的 1 的个数
// 对比之前的 result,更新最大result的值
result = result >= i - lastZore ? result : i - lastZore;
}
}
// 返回结果
return result;
}
}
2、Python
class Solution(object):
def findMaxConsecutiveOnes(self, nums):
# 最后一个零的索引下标值
lastZero = -1
# 返回最大连续1的结果
result = 0
# 便利数组
for i, num in enumerate(nums):
if num == 0:
# 当前数组元素为零,则更新索引下标值
lastZero = i
else:
# 通过 lastZero 可以获取当前元素距离最前面的 1 的个数
# 对比之前的 result,更新最大result的值
result = max(result, i - lastZero)
# 返回结果
return result