leetcode_209 长度最小的子数组

2020-06-28  本文已影响0人  看到这朵小fa了么

双指针解析,通过start end两个指针首先指向开头,结束条件为end指向数组尾,每次外循环将end元素累加,当和超过s则进行递减,期间进行结果的更新(对比结果和当前的end-start+1)

var minSubArrayLen = function(s, nums) {
    let length = nums.length
    if(length===0) {
        return 0
    }
    let start = end = 0
    let result = Infinity
    let sum = 0
    while(end <length){
        sum+=nums[end]
        while(sum >= s) {
            result = Math.min(result, end - start+1)
            sum-=nums[start]
            start++
        }
        end++
    }
    return result == Infinity ? 0 : result;
};
上一篇 下一篇

猜你喜欢

热点阅读