Minimum Size Subarray Sum
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) { int size = nums.size(); int minLen = INT_MAX,sum=0; int firstPos = 0; for(int i=0;i<size;i++){ sum += nums[i]; while(sum >= s){ minLen = min(minLen,i-firstPos+1); sum -= nums[firstPos++]; } } if(minLen == INT_MAX){ return 0; }else{ return minLen; } } };