滑动窗口(双指针)
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int left = 0;
int right = 0;
int sum = 0;
int res = INT_MAX;
while(right < nums.size())
{
sum += nums[right];
while(sum >= target)// 如果sum大于等于target,更新res,左指针前移
{
res = min(res, right - left + 1);
sum -= nums[left];
left++;
}
right++; // 右指针前移
}
return res == INT_MAX ? 0 : res;
}
};