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 mostk0'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 <= 10^5
nums[i] is either 0 or 1.
0 <= k <= nums.length
解題
funclongestOnes(nums []int, k int) int {iflen(nums) == k { return k } zero, ans :=0, 0 left, right :=0, 0for right <len(nums) {if nums[right] ==0 { zero++ }for zero > k && left < right {if nums[left] ==0 { zero-- } left++ }if right-left+1> ans && right-left+1-zero !=0 { ans = right-left+1 } right++ }return ans}