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
the subarray
[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) { int first = 0, second = 0, sum=0; int minLen = INT_MAX; while(first<nums.size()) { if(sum>=s) { minLen = min(minLen, second-first); sum -= nums[first++]; continue; } if(second == nums.size()) break; sum += nums[second++]; } return minLen == INT_MAX ? 0 : minLen; } };