/*
 * @lc app=leetcode.cn id=209 lang=javascript
 *
 * [209] 长度最小的子数组
 */

// @lc code=start
/**
 * @param {number} target
 * @param {number[]} nums
 * @return {number}
 */
var minSubArrayLen = function (target, nums) {
  const len = nums.length
  let left = 0;
  let right = 0;
  let sum = 0;
  let result = Number.MAX_VALUE;
  while (right < len) {
    sum += nums[right]
    while (sum >= target) {
      result = Math.min(result, right - left + 1)
      sum -= nums[left++];
    }
    right++
  }
  return result === Number.MAX_VALUE ? 0 : result;
};
// @lc code=end

console.log(minSubArrayLen(7, [2, 3, 100, 2, 1, 1, 1, 1, 1, 1, 1]))
console.log(minSubArrayLen(7, [2, 3, 1, 2, 4, 3]))