题目
给定一个二进制数组
nums
和一个整数k
,如果可以翻转最多k
个0
,则返回 数组中连续1
的最大个数 。
解题
def longestOnes(nums, k):
left = 0
max_len = 0
zero_count = 0
for 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 -= 1
left += 1
# 计算当前窗口内1的最大长度
max_len = max(max_len, right - left + 1)
return max_len
nums = [1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1]
k = 2
print(longestOnes(nums, k)) # 输出: 8
标签:count,nums,max,个数,len,zero,III,LeetCode,left
From: https://blog.csdn.net/weixin_74254879/article/details/141381324