长度最小的子数组 - lifengyu360/lifengyu_first_git_test GitHub Wiki

class Solution {

public:

int minSubArrayLen(int target, vector<int>& nums) {

    int quick,slow,sum=0,ans=nums.size()+1;
    quick=slow=0;                               //快慢指针初始化

    for(;quick<nums.size();++quick)
    {
        sum+=nums[quick];                       //读入快指针所走元素
        if(sum>=target)                         //达到目标后进行收缩
        {
            while(1)
            {                                   //慢指针可以往后移动多少
                if(sum-nums[slow]>=target) sum-=nums[slow++];
                else break;
            }

            if(quick-slow+1<ans) ans=quick-slow+1;  //更新最小长度
        }
    }

    if(ans<nums.size()+1) return ans;               //返回判断是否有达到目标
    else return 0;
}

};

⚠️ **GitHub.com Fallback** ⚠️