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