力扣 leetcode 485. 最大連續 1 的個數 (python)
阿新 • • 發佈:2021-02-20
技術標籤: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