1493. 删掉一个元素以后全为1的最长子数组
分析
- 定义两个指针
i
和j
,表示滑动窗口的左右边界 - 使用变量
cnt
记录窗口中0
的个数 - 遍历数组
nums
:- 如果当前元素是
0
,则将cnt
加1
- 如果
cnt > 1
,说明窗口内多于一个0
,不符合题目要求,需要将左指针j
向右移动,并根据移出的元素更新cnt
- 每次更新窗口长度
res = max(res, i - j + 1)
- 如果当前元素是
- 遍历完成后,结果为
res - 1
,因为必须删除一个元素
时间复杂度
时间复杂度 O(n)
空间复杂度
空间复杂度为 O(1)
C++代码
|
|