1004. 最大连续1的个数III
分析
- 定义两个指针
i
和j
,表示滑动窗口的左右边界 - 使用变量
cnt
记录当前窗口中0
的个数 - 遍历数组
nums
:- 如果遇到
0
,增加cnt
- 当
cnt > k
时,说明当前窗口内翻转0
的数量超出了限制,需要将左指针j
向右移动,并且如果移除的元素是0
,更新cnt
- 每次移动右指针
i
时,计算当前窗口的长度res = max(res, i - j + 1)
- 如果遇到
- 遍历完成后,返回最大窗口长度
res
时间复杂度
总时间复杂度 O(n)
空间复杂度
空间复杂度为 O(1)
C++代码
|
|