题解:
此题为1004. 最大连续1的个数 III - 力扣(Leetcode)的一个特例,即k
= 1时:
class Solution {
public:
int longestSubarray(vector<int>& nums) {
int left = 0,res = 0;
int zero_num = 0;
for(int right = 0;right < nums.size();right++){
if(nums[right] == 0) zero_num++;
while(zero_num > 1){
if(nums[left++] == 0) zero_num--;
}
res = max(res,right - left + 1);
}
return res-1;
}
};
注意最后结果为 res - 1,因为题目求的是删除1后的长度
可以先看1004. 最大连续1的个数 III(滑动窗口法)的讲解后,再看这道。