地址
难度
简单
题目
给定一个二进制数组 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 <= 10^5
- nums[i] 不是 0 就是 1.
思路
常规做法就是遍历数组,记录连续1的个数,比较是否是当前最大个数。
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int pre = 0;
int tmp = 0;
// 遍历数组
for (int i = 0; i < nums.length; i++) {
// 记录连续1的个数
if (nums[i] == 1) {
tmp++;
}
// 归零,寻找下一个连续序列
if (nums[i] == 0){
tmp = 0;
}
// 比较是否是当前最大个数
pre = Math.max(pre, tmp);
}
return pre;
}
}