变量简洁正确完整思路
滑动窗口,leftright是第一个最后一个,元素和add维持target,小于,right++add+=
大于等于更新ans,left++add-=

class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int left=0,right=-1,add=0,ans=0x3f3f3f3f,n=nums.size();
        while(right<n){
            //cout<<left<<right<<' '<<add<<endl;
            if(add<target){
                if(right==n-1)break;
                else add+=nums[++right];
            }
            else{
                ans=min(ans,right-left+1);
                add-=nums[left];
                left++;
            }
        }
        return ans==0x3f3f3f3f?0:ans;
    }
};

踩过的坑
遇到bug立刻cout恰当的东西,如while开头的下标和关键量如cur、add

 

posted on 2021-08-07 13:11  offer快到碗里来~  阅读(29)  评论(0)    收藏  举报