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
};
posted @ 2026-01-13 12:13  琬六岁  阅读(3)  评论(0)    收藏  举报