【演算法題解】485. 最大連續1的個數 - Java

彡沒頭腦發表於2020-12-08

1. 題目描述

給定一個二進位制陣列, 計算其中最大連續1的個數。

示例 1:

輸入: [1,1,0,1,1,1]
輸出: 3
解釋: 開頭的兩位和最後的三位都是連續1,所以最大連續1的個數是 3.
注意:

輸入的陣列只包含 0 和1。
輸入陣列的長度是正整數,且不超過 10,000。

2. Java程式碼

    public int findMaxConsecutiveOnes(int[] nums) {
        // base case,陣列為空時返回0
        if (nums.length == 0) return 0;

        // 計數
        int count = 0;
        // 連續個數最多的個數
        int result = 0;
        // 遍歷陣列
        for (int i = 0; i < nums.length; i++) {
            // 遇到1則連續的個數加一
            if (nums[i] == 1) count++;
            // 遇到0,則先保留前面已經計算過的連續個數的最大值並使計數歸零進行下一輪的計算
            else {
                // 儲存已經計算過的連續個數的最大值
                result = Math.max(count,result);
                count = 0;
            }
        }
        // 返回最大值
        return Math.max(count,result);
    }

相關文章