1. 程式人生 > 其它 >力扣 leetcode 485. 最大連續 1 的個數 (python)

力扣 leetcode 485. 最大連續 1 的個數 (python)

技術標籤:leetcodepythonpython演算法leetcode資料結構指標

Topic

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

Example

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

Tips

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

Solution

通過enumerate函式僅需一次遍歷即可滿足題意

同樣是滑動視窗的方法
只要視窗的右側為1則繼續右移視窗右側指標

當視窗右側出現0的時候
將視窗左側指標放置在當前位置
並繼續右移視窗右指標

最終返回視窗長度的最大值

Code

class Solution(object):
    def findMaxConsecutiveOnes(self, nums):
        index = -1
        res = 0
        
        for i, num in enumerate(nums):
            if num == 0:
                index = i
            else:
                res = max(res, i - index)

        return res

Result

在這裡插入圖片描述