class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int n = nums.size();
if (n == 0) return 0;
int ret = INT_MAX, sum = 0, begin = 0, end = 0;
while (end < n)
{
sum += nums[end];
while (sum >= target) {
ret = min(ret, end - begin + 1);
sum -= nums[begin++];
}
++end;
}
return ret == INT_MAX ? 0 : ret;
}
};