llllmz

导航

209. 长度最小的子数组

滑动窗口!!

 

class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int left = 0, right = 0, sum = nums[0];
        int minLength = INT_MAX;
        while(left <= right && right < nums.size()){
            if(sum >= target){
                if(minLength > right - left + 1) minLength = right - left + 1;
                sum -= nums[left++];
            }else{
                if(right == nums.size() - 1) break;
                sum += nums[++right];
            }
        }
        if(minLength == INT_MAX) minLength = 0;
        return minLength;
    }
};

 

posted on 2024-09-10 22:46  神奇的萝卜丝  阅读(16)  评论(0)    收藏  举报