ST长度最小的子数组
1、正整数数组,找到大于等于S的连续的最小长度区间。意思是找出最小的连续子区间,不需要为了把元素拆开。比如找到大于等于7的最小连续子数组。
2、滑动窗口法:不断调节子序列的起始位置和终止位置(即两个指针的位置),从而得出我们想要的结果。
var minSubArrayLen = function(target, nums) {
let i = 0, j = 0, sum = 0, ans = Infinity;
//设置双指针i,j,使他们在初始时候均指向0位置,在左指针不动的情况下,右指针先动,找到满足和大于S值的最小长度以后;左指针再向右移动一个,右指针再次遍历找最小长度
let len = nums.length
while (j < len){
sum += nums[j];
while (sum >= target) {
ans = Math.min(ans, j-i+1);
sum -= nums[i];
i++;
}
j++;
}
return ans === Infinity ? 0 : ans
};

浙公网安备 33010602011771号