一、题目
1004. 最大连续1的个数 III - 力扣(LeetCode)
二、代码
class Solution {
public:
int longestOnes(vector<int>& nums, int k) {
int mark=0;//标记0的个数
int MaxLength=0;
for(int left=0,right=0;right<nums.size();right++)
{
if(nums[right]==0)
{
++mark;
}
while(mark>k)//0的个数大于k
{
if(nums[left]==0)//如果nums[left]=0,mark减1,同时left右移
{
--mark;
++left;
}
else//如果nums[left]=1,left右移,mark不变
{
++left;
}
}
//此时mark=k
MaxLength = max(MaxLength,right-left+1);
}
return MaxLength;
}
};