一、题目
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0
二、示例
示例 1:
输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。
示例 2:
输入:target = 4, nums = [1,4,4]
输出:1
示例 3:
输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0
滑动窗口思想:定义两个指针,右指针初步确定范围,到达一个范围,移动左指针,使缩小范围,并比较
/**
* @param {number} target
* @param {number[]} nums
* @return {number}
*/
var minSubArrayLen = function(target, nums) {
if(nums.)
var left=0
var right=0
var sum=0
var res=nums.length+1
while(right<nums.length)
{
sum+=nums[right]
while(sum>=target)
{
res=Math.min(res,right-left+1)
sum-=nums[left]
left++
}
right++
}
res=res==(nums.length+1)?0:res
return res
};