image.png

思路:

滑动窗口

  1. 首先left=0,right=0,累加nums[right],
  • 若累加值count大于target,移动left, count -= nums[left++]
  • 否则则继续移动right。

    1. let target = 7, nums = [2, 3, 1, 2, 4, 3]
    2. var minSubArrayLen = function (target, nums) {
    3. let left = right = count = 0, len = nums.length, res = len + 1//子串长度不可能超过nums
    4. while (right < nums.length) {
    5. count += nums[right++]
    6. while (count >= target) {
    7. res = res < right - left ? res : right - left;
    8. count -= nums[left++]
    9. }
    10. }
    11. return res > len ? 0 : res;
    12. };
    13. console.log(minSubArrayLen(target, nums));

    二分法

    。。。。。