487. Max Consecutive Ones II
這一個題目應該直接使用 1004. Max Consecutive Ones III 來思考
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
k = 1
slow, fast, zeros, ans = 0, 0, 0, 0
while fast < len(nums):
# 當前數字為 0,增加 0 的計數
if nums[fast] == 0:
zeros += 1
# 如果窗口中的 0 的數量超過了 k,縮小窗口
if zeros > k:
# 逐步縮小左側窗口,直到 0 的數量小於等於 k
if nums[slow] == 0:
zeros -= 1
slow += 1
# 計算當前窗口的大小,並更新答案
ans = max(ans, fast - slow + 1)
fast += 1
return ans