1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
// @Title: 最大连续1的个数 III (Max Consecutive Ones III)
// @Author: 15816537946@163.com
// @Date: 2021-02-19 23:44:09
// @Runtime: 72 ms
// @Memory: 6.9 MB
func longestOnes(A []int, K int) int {
	left, right := 0, 0
	for right = range A {
		K -= 1 ^ A[right]
		if K < 0 {
			K += 1 ^ A[left]
			left++
		}
	}

	return right - left + 1
}