欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode 1004 max-consecutive-ones-iii

程序员文章站 2024-03-06 10:02:37
...

LeetCode 1004

运行转换k个0为1, 那么我们可以尝试维护一个k个0的sliding window,然后慢慢向数组后端移动,找到最长的子串。

    def longestOnes(self, A: List[int], K: int) -> int:
        if K < 0: raise Exception("invalid input")
        if A == None or len(A) == 0: return 0

        n = len(A)
        maxcount = 0
        left = 0
        right =0
        while right < n:
            if A[right] == 0:
                if K > 0:
                    K -=1                    
                else:
                    while A[left] == 1:
                        left +=1
                    left +=1
                    
            right +=1
            maxcount = max(maxcount, right-left)                    

        return maxcount