题目描述
给定一个由若干 0 和 1 组成的数组 A ,我们最多可以将 K 个值从 0 变成 1 。
返回仅包含 1 的最长(连续)子数组的长度。...示例1
输入:
A = [1,1,1,0,0,0,1,1,1,1,0], K = 2
输出:
6
解释:
[1,1,1,0,0,1,1,1,1,1,1]
A[5] 和 A[10] 从 0 翻转到 1,最长的子数组长度为...0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3
输出:
10
解释:
[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
A[4] 、A[5]...过程中时刻更新最长的距离 res 。
因为 l 和 r 分别最多移动 n 次,所以最终的时间复杂度是 的。
那么为什么这样是正确的呢?不会漏掉正确答案所在的区间吗?我们看看漏掉的是哪些区间。...对于一个固定的 r ,移动 l 直到 0 的数量小于等于 K (记为 l' )的过程中,漏掉的是 [l', r] 这些区间。