diff --git a/Leetcode/209.minimum-size-subarray-sum.ts b/Leetcode/209.minimum-size-subarray-sum.ts new file mode 100644 index 0000000..d6a2aab --- /dev/null +++ b/Leetcode/209.minimum-size-subarray-sum.ts @@ -0,0 +1,24 @@ +/* + * [209] Minimum Size Subarray Sum + */ + +function minSubArrayLen(target: number, nums: number[]): number { + let minLength = Infinity; + let left = 0, + right = left; + let sum = 0; + + while (right < nums.length) { + if (sum < target) { + sum += nums[right]; + right++; + } + while (sum >= target) { + minLength = Math.min(minLength, right - left); + sum -= nums[left]; + left++; + } + } + + return minLength === Infinity ? 0 : minLength; +}