最大连续1的个数 III(LeetCode)
题目
给定一个二进制数组
nums
和一个整数k
,如果可以翻转最多k
个0
,则返回 数组中连续1
的最大个数 。
解题
def longestOnes(nums, k):left = 0max_len = 0zero_count = 0for right in range(len(nums)):# 如果遇到0,统计当前窗口内0的个数if nums[right] == 0:zero_count += 1# 如果窗口内的0的个数超过了k,移动左指针while zero_count > k:if nums[left] == 0:zero_count -= 1left += 1# 计算当前窗口内1的最大长度max_len = max(max_len, right - left + 1)return max_lennums = [1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1]
k = 2
print(longestOnes(nums, k)) # 输出: 8