Given an array of n positive integers and a positive
integer s, find the minimal length of a contiguous subarray
of which the sum ≥ s. If there isn't one, return 0 instead.
Example:
Input: s = 7, nums = [2,3,1,2,4,3]
Output: 2
Explanation: the subarray [4,3] has the minimal length
under the problem constraint.
/**
* @param {number} s
* @param {number[]} nums
* @return {number}
*/
var minSubArrayLen = function(s, nums) {}
var minSubArrayLen = function(s, nums) {
let min = Number.MAX_SAFE_INTEGER;
let sum = 0, start = 0;
for(let end = 0; end < nums.length; end++){
sum += nums[end];
while(sum >= s){
min = Math.min(min, end - start + 1);
// 也就是把 windowStart 往右移
sum -= nums[start];
start ++;
}
}
return min == Number.MAX_SAFE_INTEGER ? 0 : min;
};