做夜夜做网站,网站建设-搜遇网络,wordpress被公众号干掉,wordpress 首页变量给定一个二进制数组 nums 和一个整数 k#xff0c;如果可以翻转最多 k 个 0 #xff0c;则返回 数组中连续 1 的最大个数 。 示例 1#xff1a;
输入#xff1a;nums [1,1,1,0,0,0,1,1,1,1,0], K 2 输出#xff1a;6 解释#xff1a;[1,1,1,0,0,1,1,1,1,1,1] 粗体数字… 给定一个二进制数组 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 翻转到 1最长的子数组长度为 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 翻转到 1最长的子数组长度为 10。
解题思路 设置左右指针left和right先移动右指针有0就让k--当k小于0 了就移动左指针碰到0就让k当k0时左指针停止移动。 由该思路可知当符合题意条件K0时该滑动窗口只变大不会变小所以最后就能得到一个含有最多1的滑动窗口 class Solution {
public:int longestOnes(vectorint nums, int k) {int left 0, right 0;while (right nums.size()) {if (nums[right] 0) {--k;}if (k 0 nums[left] 0) {k;}}return right - left;}
};