长度最小的子数组(双指针)

在这里插入图片描述

class Solution {
public:
    //典型的双指针(还有点贪心算法的味道)
    int minSubArrayLen(int s, vector<int>& nums) {
        int start=0,end=0;
        int n=nums.size();
        if(n==0)return 0;
        int res=INT_MAX;
        int sum=0;
        while(end<n)
        {
            sum+=nums[end];
            while(sum>=s)
            {
                //刷新res
                res=min(res,end-start+1);
                sum-=nums[start++];
            }
            end++;

        }

        if(res==INT_MAX)return 0;
        return res;


    }
};

猜你喜欢

转载自blog.csdn.net/ShenHang_/article/details/107000068