485. Max Consecutive Ones

485. Max Consecutive Ones

自从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;
    }
}

你可能感兴趣的:(485. Max Consecutive Ones)