1004. 最大连续1的个数 III
给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。
返回仅包含 1 的最长(连续)子数组的长度。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-consecutive-ones-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
滑动窗口
class Solution {
public int longestOnes(int[] nums, int k) {
if (nums == null || nums.length == 0) {
return 0;
}
int ret = 0;
int sum = 1 - nums[0];
int l = 0, r = 0;
while (r < nums.length) {
if (sum <= k) {
ret = Math.max(ret, r - l + 1);
sum += ++r == nums.length ? 0 : (1 - nums[r]);
} else {
sum -= (1 - nums[l++]);
}
}
return ret;
}
}
心之所向,素履以往 生如逆旅,一苇以航

浙公网安备 33010602011771号