题目:
给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数
算法:
方法一:滑动窗口
func longestOnes(nums []int, k int) int {
left, right := 0, 0
// sum 为[left,right]之间1的个数
sum := 0
for ;right < len(nums); right ++ {
sum = sum + nums[right]
// 长度超过了最大长度,left右移
if right - left + 1 > sum + k {
sum = sum - nums[left]
left ++
}
}
return right - left
}