力扣209. 长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

尺取法 尺取_yanhua_tj的博客-CSDN博客 图片截自别人博客

 

 

class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int l=0,r=0,len=nums.size(),now=0,ans=INT32_MAX;
        for(int i=0;i<nums.size();++i){
            now+=nums[i];
            while(now>=target){
                ans=min(ans,i+1-l);
                //int res=i+1-l;
                //ans= ans>res?res:ans;
                now-=nums[l++];
            }
        }
        return ans == INT32_MAX ? 0 : ans;
    }
};

 

posted @ 2022-03-01 17:28  小草今天又在摸鱼吗  阅读(22)  评论(0)    收藏  举报