Skip to content

1004 Max Consecutive Ones III

Approach 1 Sliding Window

class Solution:
    def longestOnes(self, nums: List[int], k: int) -> int:
        """
        observation:
        - binary array of 1s and 0s
        - its >= 0, so we can sliding window
        """
        left = 0
        res = 0 
        num_of_zeros = 0       
        for right,num in enumerate(nums):
            if nums[right] == 0:
                num_of_zeros += 1
            while num_of_zeros > k:
                if nums[left] == 0:
                    num_of_zeros -= 1
                left += 1
            # if reach here, it's all valid answer
            res = max(res, right - left + 1)
        return res