最大连续 1 的个数 III
Max Consecutive Ones III
题目详情
问题:最大连续 1 的个数 III
考察:数组、滑动窗口、双指针
来源:Citadel
链接:https://www.jointaro.com/interviews/questions/max-consecutive-ones-iii/
Given a binary array nums and an integer k, return the maximum number of consecutive 1's in the array if you can flip at most k 0's.
Example 1:
Input: nums = [1,1,1,0,0,0,1,1,1,1,0], k = 2 Output: 6 Explanation: [1,1,1,0,0,1,1,1,1,1,1] Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.
Example 2:
Input: nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], k = 3 Output: 10 Explanation: [0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1] Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.
Constraints:
1 <= nums.length <= 105nums[i]is either0or1.0 <= k <= nums.length
解析
思路:滑动窗口中允许最多 k 个 0。右端扩展时统计 0 的数量,若超过 k 就移动左端直到合法,窗口最大长度即答案。
复杂度:时间 O(n),空间 O(1)。