1. 程式人生 > >485. Max Consecutive Ones最長的連續1的個數

485. Max Consecutive Ones最長的連續1的個數

src HERE mat public 代碼 bin 結果 1的個數 spl

[抄題]:

Given a binary array, find the maximum number of consecutive 1s in this array.

Example 1:

Input: [1,1,0,1,1,1]
Output: 3
Explanation: The first two digits or the last three digits are consecutive 1s.
    The maximum number of consecutive 1s is 3.

[暴力解法]:

用temp,result,結果發現寫起來很麻煩

時間分析:

空間分析:

[優化後]:

時間分析:

空間分析:

[奇葩輸出條件]:

[奇葩corner case]:

[思維問題]:

[一句話思路]:

還是局部最大值+全局最大值的思路。用三元表達式解決局部變量的連續和中斷問題

[輸入量]:空: 正常情況:特大:特小:程序裏處理到的特殊情況:異常情況(不合法不合理的輸入):

[畫圖]:

[一刷]:

  1. 是maxHere + 1 統計,不是n + 1,這是是樂至?

[二刷]:

[三刷]:

[四刷]:

[五刷]:

[五分鐘肉眼debug的結果]:

[總結]:

三元表達式解決局部變量的連續和中斷問題

[復雜度]:Time complexity: O(n) Space complexity: O(1)

[英文數據結構或算法,為什麽不用別的數據結構或算法]:

[關鍵模板化代碼]:

[其他解法]:

[Follow Up]:

487. Max Consecutive Ones II 好像不是數學就是兩根指針吧

[LC給出的題目變變變]:

[代碼風格] :

技術分享圖片
class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        //cc
        if (nums == null || nums.length == 0) {
            return 0;
        }
        
        
//ini int max = 0; int maxHere = 0; //for loop for (int n : nums) { max = Math.max(max, maxHere = n == 0 ? 0 : maxHere + 1); } //return return max; } }
View Code

485. Max Consecutive Ones最長的連續1的個數