1004.最大连续1的个数III
1004.最大连续1的个数III
题解
滑动窗口
- 右指针右移之后窗口数据更新
- 判断窗口是否要收缩
- 左指针右移之后窗口数据更新
- 根据题意计算结果
代码
func longestOnes(nums []int, k int) int { ans := 0 left, sum := 0, 0 for right := range nums { //右指针右移之后窗口数据更新 if nums[right] == 0 { sum++ } //判断窗口是否要收缩 for sum > k { //左指针右移之后窗口数据更新 if nums[left] == 0 { sum-- } left++ } //根据题意计算结果 ans = max(ans, right-left+1) } return ans } func max(i, j int) int { if i > j { return i } return j }