(1)双指针
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int sum=0,len=nums.size();
int left=0,right=0,min_len=INT_MAX;
while(left<=right) {
while(right<len && sum<target) {
sum+=nums[right];
right++;
}
if(right<len && sum>=target) min_len=min(min_len,right-left);
else if(right==len && sum>=target) min_len=min(min_len,len-left);
else break;
sum-=nums[left];
left++;
}
return min_len==INT_MAX?0:min_len;
}
};