题目描述
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
示例 1:
输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1]
输出:2
第一次:2022年11月10日17:18:29
解题思路
在分析的时候犯错误
分析的时候,有一个点不正确:就是当nums[i] == 0的时候,curLength就必须去清零操作
// 这里就是犯的错误点,比较 maxLength 和 curLength 是正确的
// 当nums[i] == 0的时候,curLength就必须去清零操作 ,无关 maxLength 是否是比 curLength 小
else{
if(maxLength < curLength){
maxLength = curLength;
curLength = 0;
}
}
优化的空间
- 两个数比较大小可以通过 max(int a, int b)
最终的代码实现
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int curLength = 0;
int maxLength = 0;
for(int i = 0; i < nums.length; i++){
if (nums[i] == 1){
curLength++;
}else{
maxLength = Math.max(maxLength, curLength);
curLength = 0;
}
}
maxLength = Math.max(maxLength, curLength);
return maxLength;
}
}