class Solution {
public:
int minSubArrayLen(int s, vector<int>& nums) {
int n = nums.size();
int minlen = 0, p1 = 0, p2 = 0, sum = 0;
while (p2 < n) {
sum += nums[p2++];
if (sum >= s) {
while (sum >= s) {
sum -= nums[p1++];
}
if (minlen == 0 || p2 - p1 + 1 < minlen) {
minlen = p2 - p1 + 1;
}
}
}
return minlen;
}
};