双指针
同向双指针 滑动窗口
209. 长度最小的子数组
/**
* @param {number} target
* @param {number[]} nums
* @return {number}
*/
var minSubArrayLen = function (target, nums) {
let n = nums.length
let left = 0
let ans = n + 1
let sum = 0
for (let right = 0; right < n; right++) {
sum += nums[right]
while (sum - nums[left] >= target) {
sum -= nums[left]
left++
}
if (sum >= target) {
ans = Math.min(ans, right - left + 1)
}
}
return ans <= n ? ans : 0
};
var minSubArrayLen = function (target, nums) {
let n = nums.length
let left = 0
let ans = n + 1
let sum = 0
for (let right = 0; right < n; right++) {
sum += nums[right]
while (sum >= target) {
ans = Math.min(ans, right - left + 1)
sum -= nums[left]
left++
}
}
return ans <= n ? ans : 0
};