自从leetcode推出赞同反对功能,看到有很多人点反对的题目莫名不太想做。。
对于Easy题,总有人能想到更简单的方法。
这题我用了后一项比前一项来确定是否连续,其实不用,只要在遇到0的时候把max置为0就行了。
好的代码
public int findMaxConsecutiveOnes(int[] nums) {
int maxHere = 0, max = 0;
for (int n : nums)
max = Math.max(max, maxHere = n == 0 ? 0 : maxHere + 1);
return max;
}
我的代码
public class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
if(nums.length==0) return 0;
if(nums.length==1) return nums[0]==1 ? 1 : 0;
int res = nums[0];
int max = 1;
for (int i = 1 ; i < nums.length ; i ++){
if(nums[i] == 1 && res < 1) res = 1;
if(nums[i] == 1 && nums[i - 1] == 1){
max ++ ;
res = Math.max(res , max);
}else{
max = 1;
}
}
return res;
}
}