python-leetcode-删掉一个元素以后全为 1 的最长子数组

1493. 删掉一个元素以后全为 1 的最长子数组 - 力扣(LeetCode)

python-leetcode-删掉一个元素以后全为 1 的最长子数组_第1张图片

python-leetcode-删掉一个元素以后全为 1 的最长子数组_第2张图片

可以使用滑动窗口的方式来解决这个问题。我们要找到最长的全 1 子数组,但必须删除一个元素,因此可以将问题转化为寻找最多包含一个 0 的最长子数组。

解题思路

  1. 使用双指针(滑动窗口),维护窗口内最多包含一个 0
  2. 当窗口内的 0 超过 1 个时,移动左指针 left 直到窗口内 0 的数量恢复为 1。
  3. 记录窗口的最大长度,最终返回 maxLen - 1,因为必须删除一个元素(即使数组全是 1,我们仍然需要删掉一个)。

代码实现

你可能感兴趣的:(leetcode,算法,职场和发展)