diff --git a/0209-Minimum_Size_Subarray_Sum/main.ts b/0209-Minimum_Size_Subarray_Sum/main.ts new file mode 100644 index 0000000..799c948 --- /dev/null +++ b/0209-Minimum_Size_Subarray_Sum/main.ts @@ -0,0 +1,31 @@ +// let target = 7, +// nums = [2, 3, 1, 2, 4, 3]; +// let target = 4, +// nums = [1, 4, 4]; +let target = 11, + nums = [1, 1, 1, 1, 1, 1, 1, 1]; + +function miniSubArrayLen(target: number, nums: number[]): number { + let left: number = 0, + right: number = 0; + let res: number = nums.length + 1; + let sum: number = 0; + while (right < nums.length) { + sum += nums[right]; + if (sum >= target) { + while (sum - nums[left] >= target) { + sum -= nums[left++]; + } + res = Math.min(res, right - left + 1); + } + right++; + } + return res === nums.length + 1 ? 0 : res; +} + +let result = miniSubArrayLen(target, nums); +console.time("miniSubArrayLen"); +miniSubArrayLen(target, nums); +console.timeEnd("miniSubArrayLen"); + +console.log(result); diff --git a/0209-Minimum_Size_Subarray_Sum/readme.md b/0209-Minimum_Size_Subarray_Sum/readme.md new file mode 100644 index 0000000..05a7385 --- /dev/null +++ b/0209-Minimum_Size_Subarray_Sum/readme.md @@ -0,0 +1,27 @@ +# 209. Minimum Size Subarray Sum + +Given an array of positive integers `nums` and a positive integer `target`, return the minimal length of a +subarray +whose sum is greater than or equal to `target`. If there is no such subarray, return `0` instead. + +## Example 1: + +> Input: target = 7, nums = [2, 3, 1, 2, 4, 3]
+> Output: 2
+> Explanation: The subarray [4, 3] has the minimal length under the problem constraint. + +## Example 2: + +> Input: target = 4, nums = [1, 4, 4]
+> Output: 1 + +## Example 3: + +> Input: target = 11, nums = [1, 1, 1, 1, 1, 1, 1, 1]
+> Output: 0 + +### Constraints: + +- 1 <= target <= 109 +- 1 <= nums.length <= 105 +- 1 <= nums[i] <= 104