- 原题题目
- 代码实现(首刷自解 queue 空间复杂度高)
- 代码实现(首刷自解 O(1)空间)
原题题目
代码实现(首刷自解 queue 空间复杂度高)
class Solution {
public:
int longestOnes(vector& nums, int k) {
int ret = 0,start = 0,end = 0;
queue one_input;
while(end != nums.size())
{
if(nums[end] == 0)
one_input.emplace(end);
while(one_input.size() > k)
{
if(start == one_input.front()) one_input.pop();
++start;
}
++end;
ret = max(end - start,ret);
}
return ret;
}
};
代码实现(首刷自解 O(1)空间)
class Solution {
public:
int longestOnes(vector& nums, int k) {
int ret = 0,start = 0,end = 0;
int one_input = 0;
while(end != nums.size())
{
if(nums[end] == 0)
++one_input;
while(one_input > k)
{
if(nums[start] == 0) --one_input;
++start;
}
++end;
ret = max(end - start,ret);
}
return ret;
}
};



