LeetCode 1004 最大连续 1 的个数
🟡 中等 https://leetcode.cn/problems/max-consecutive-ones-iii/description/
思路
- 窗口内容:最后经过替换后的连续1。
- 长度限制:无
- 窗口内元素限制:
- 窗口内元素0个数要小于k。
这里 zero_used 一开始是小数,故while中是大数, 答案在小数内。
class Solution {
public:
int longestOnes(vector<int>& nums, int k) {
int zero_used = 0;
int left = 0;
int res = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] == 0 ) {
zero_used++;
}
while(zero_used>k){
if(nums[left]==0){
zero_used--;
}
left++;
}
res = max(res, i - left + 1);
}
return res;
}
};