leetcode 最大连续1的个数III 中等_尺取

 

 

尺取:如果 nums[r] == 0,如果想要假如这个入答案,那么就需要 --k,如果 k < 0,就只能收缩 l.

class Solution {
public:
    int longestOnes(vector<int>& nums, int k) {
        int ret = 0, l = 0;
        for(int r = 0; r < nums.size(); ++ r) {
            if(nums[r] == 0) -- k;
            while(l <= r && k < 0) {
                if(nums[l] == 0) ++ k;
                ++ l;
            }
            ret = max(ret, r - l + 1);
        }
        return ret;
    }
};