我們用two pointer來解決, 假設sum太小, 我就往右一個, 看清楚題目, 大於等於target就可以記錄了, 所以當大於target時, 我們就先記錄, 並把左pointer往右
等到右邊的pointer走完了, 我們可以接續走左邊的看還有沒有更小的可能
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int l = 0;
int r = 0;
int sum = nums[0];
int res = INT_MAX;
while(r < nums.size() && l <=r){
if(sum < target){
r++;
if(r >= nums.size()) break;
sum+=nums[r];
}else{
res = min(r - l + 1, res);
sum-=nums[l];
l++;
}
}
if(res == INT_MAX){
return 0;
}
return res;
}
};