给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0,则返回数组中连续 1 的最大个数。
示例 1:
输入:nums = [1,1,1,0,0,0,1,1,1,1,0],k = 2
输出:6
解释:[1,1,1,0,0,1,1,1,1,1,1],翻转两个 0 后,最长的子数组长度为 6。
示例 2:
输入:nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1],k = 3
输出:10
解释:[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1],翻转三个 0 后,最长的子数组长度为 10。
提示:
- 1 <= nums.length <= 105
- nums[i] 不是 0 就是 1
- 0 <= k <= nums.length
题解:
一道简单的滑动窗口题(双指针), 用两个指针(下标), 维护一个窗口, 窗口满足里面需要满足窗口中0的个数不超过 k 个, 让指针 r 从头遍历到尾, 对窗口的长度取 max 就是答案
ac代码
标签:子串,窗口,nums,sum,力扣,数组,长度,1004,III From: https://www.cnblogs.com/xxctx/p/18214135