funclongestOnes(nums []int, k int)int{left, zeroCnt, maxLen :=0,0,0for right :=0; right <len(nums); right++{if nums[right]==0{zeroCnt++}// 窗口收缩条件for zeroCnt > k {if nums[left]==0{zeroCnt--}left++}// 更新最大窗口长度maxLen =max(maxLen, right - left +1)}return maxLen
}funcmax(a, b int)int{if a > b {return a }return b
}
二、算法分析
1. 核心思路
滑动窗口机制:维护一个允许最多包含 k 个 0 的窗口,通过动态调整左右边界寻找最大连续 1 的区间