Skip to content

Code:

js
/**
 * @param {number} target
 * @param {number[]} nums
 * @return {number}
 */
var minSubArrayLen = function(target, nums) {
    let min = Number.MAX_SAFE_INTEGER

    for (let i = 0, j = 0, sum = 0; i < nums.length; i++) {
        sum += nums[i]

        while (sum >= target) {
            min = Math.min(min, i - j + 1)
            sum -= nums[j++]
        }
    }

    return min === Number.MAX_SAFE_INTEGER ? 0 : min
};

// 时间复杂度:O(n)
// 空间复杂度:O(1)

console.log(minSubArrayLen(7, [2,3,1,2,4,3]))
console.log(minSubArrayLen(4, [1, 4, 4]))
console.log(minSubArrayLen(11, [1,1,1,1,1,1,1,1]))
console.log(minSubArrayLen(213, [12,28,83,4,25,26,25,2,25,25,25,12]))

❤ With Algorithm