[LeetCode]485. Max Consecutive Ones 找到最大的連續的1的個數

題目描述

輸入只有0和1的數組(長度爲正整數,且<10000),找到最大的連續1的個數
好比[1,1,0,1,1,1],輸出3java

思路

遍歷數組,統計當前連續個數curCount和最大連續值maxCount。If當前數組值爲1,則curCount++;不然(值爲0)比較curCount和maxCount,看是否須要替換,並把curCount置0
最後返回maxCount數組

錯誤:對於[1]這種邊界條件沒有考慮徹底。這種時候上面的邏輯會輸出0,而應該是1。也就是結束的時候須要增長一個比較,萬一若是最後的連續1的個數比較多。code

——解決:在遍歷完,返回以前,增長一個[比較curCount和maxCount,看是否須要替換]。io

代碼

public class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        int curCount=0,maxCount=0;
        
        for(int n: nums){
            if(n==1)
                curCount++;
            else{
                if(curCount>maxCount)
                    maxCount=curCount;
                curCount=0;
            }
        }
        if(curCount>maxCount)
                    maxCount=curCount;
        return maxCount;
    }
}
相關文章
相關標籤/搜索