给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
1、数组下标从 (l,r) = (-1,0)开始,即:为[]
2、sum为数组中所有数据之和
3、子数组的最大长度为nums.length
var minSubArrayLen = function ( target, nums ) {
let l = 0
let r = -1
let sum = 0
let res = nums.length + 1 //比最大值nums.length还要大--为了判断不满足的情况
while( l < nums.length ) {
if( sum < target && r + 1 < nums.length ){
r++
sum += nums[r]
} else {
sum -= nums[l]
l++
}
if( sum >= target) {
res =Math.min(res, r-l+1)
}
}
if( res === nums.length + 1 ) return 0
return res
}