LeetCode 解題練習:Max Consecutive Ones

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

If you like this post, please click the ads on the blog or buy me a coffee. Thank you very much.

題目原文描述 https://leetcode.com/problems/max-consecutive-ones/

中文描述

給一個二進位陣列 nums ,找出最大連續出現 1 的次數。


範例一:

輸入 nums = [ 1, 1, 0, 0, 1, 1, 1, 1]

輸出 4


範例二:

輸入 nums = [ 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0]

輸出 3


解法:

使用一個變數 curOnes 紀錄目前連續出現 1 的次數,若目前的數字為 0 ,將 curOnes 歸零。

每次將 curOnes 加 1 時,與 maxOnes 比較,若 curOnes 比 maxOnes 大,則 maxOnes 等於 curOnes。


Python Code

class Solution:
    def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
        curOnes = 0
        maxOnes = 0

        for n in nums:
            if n == 0:
                curOnes = 0
           
            curOnes += n
            if curOnes > maxOnes:
                    maxOnes = curOnes

        return maxOnes


沒有留言: