Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn’t one, return 0 instead.
For example, given the array [2,3,1,2,4,3] and s = 7, the subarray [4,3] has the minimal length under the problem constraint.
class Solution { public: int minSubArrayLen(int s, vector<int>& nums) { size_t n = nums.size(); int sum = 0; int ans = INT_MAX; int p = 0,q = 0; while(q < n){ sum += nums[q++]; while(sum >= s){ ans = min(ans,q-p); sum -= nums[p++]; } } return ans==INT_MAX ? 0 : ans; } };