1. 程式人生 > 其它 >#力扣 LeetCode485. 最大連續1的個數 @FDDLC

#力扣 LeetCode485. 最大連續1的個數 @FDDLC

技術標籤:演算法&資料結構

題目描述:

https://leetcode-cn.com/problems/max-consecutive-ones/

Java程式碼:

class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        int ans=0;
        for(int i=nums.length-1,cnt=0;i>=0;i--){
            cnt=nums[i]==1?cnt+1:0;
            if(ans<cnt)ans=cnt;
        }
        return ans;
    }
}

Java程式碼二:

class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        int ans=0,cnt=0;
        for(int i=nums.length-1;i>=0;i--){
            if(nums[i]==1)cnt++;
            else{
                if(ans<cnt)ans=cnt; //可能是最大,但沒有進入else,因此在return處打補丁
                if(ans>=i)break; //提前退出
                cnt=0;
            }
        }
        return Math.max(ans,cnt);
    }
}

Java程式碼三:

class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        int ans=0,cnt=0;
        for(int i=nums.length-1;i>=0;i--){
            cnt=(cnt+1)*nums[i];
            if(ans<cnt)ans=cnt;
        }
        return ans;
    }
}