From 4d88d22cba6ba68abbd969ebb6f4f1b5744d097e Mon Sep 17 00:00:00 2001 From: rain84 Date: Mon, 27 May 2024 16:33:25 +0300 Subject: [PATCH] refactor: remove inner while-loop in lc problem: No.209 --- .../0200-0299/0209.Minimum Size Subarray Sum/README.md | 8 ++++---- .../0200-0299/0209.Minimum Size Subarray Sum/README_EN.md | 8 ++++---- .../0200-0299/0209.Minimum Size Subarray Sum/Solution2.ts | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/solution/0200-0299/0209.Minimum Size Subarray Sum/README.md b/solution/0200-0299/0209.Minimum Size Subarray Sum/README.md index 9d0a0172b005d..73dcc4c17236e 100644 --- a/solution/0200-0299/0209.Minimum Size Subarray Sum/README.md +++ b/solution/0200-0299/0209.Minimum Size Subarray Sum/README.md @@ -361,14 +361,14 @@ func minSubArrayLen(target int, nums []int) int { ```ts function minSubArrayLen(target: number, nums: number[]): number { const n = nums.length; - let s = 0; + let s = nums[0]; let ans = n + 1; - for (let i = 0, j = 0; i < n; ++i) { - s += nums[i]; - while (s >= target) { + for (let i = 0, j = 0; i < n; ) { + if (s >= target) { ans = Math.min(ans, i - j + 1); s -= nums[j++]; } + if (s < target) s += nums[++i]; } return ans === n + 1 ? 0 : ans; } diff --git a/solution/0200-0299/0209.Minimum Size Subarray Sum/README_EN.md b/solution/0200-0299/0209.Minimum Size Subarray Sum/README_EN.md index f540fa51066b5..a936fe15371ef 100644 --- a/solution/0200-0299/0209.Minimum Size Subarray Sum/README_EN.md +++ b/solution/0200-0299/0209.Minimum Size Subarray Sum/README_EN.md @@ -352,14 +352,14 @@ func minSubArrayLen(target int, nums []int) int { ```ts function minSubArrayLen(target: number, nums: number[]): number { const n = nums.length; - let s = 0; + let s = nums[0]; let ans = n + 1; - for (let i = 0, j = 0; i < n; ++i) { - s += nums[i]; - while (s >= target) { + for (let i = 0, j = 0; i < n; ) { + if (s >= target) { ans = Math.min(ans, i - j + 1); s -= nums[j++]; } + if (s < target) s += nums[++i]; } return ans === n + 1 ? 0 : ans; } diff --git a/solution/0200-0299/0209.Minimum Size Subarray Sum/Solution2.ts b/solution/0200-0299/0209.Minimum Size Subarray Sum/Solution2.ts index ef54870682bf6..65aa182a3adb4 100644 --- a/solution/0200-0299/0209.Minimum Size Subarray Sum/Solution2.ts +++ b/solution/0200-0299/0209.Minimum Size Subarray Sum/Solution2.ts @@ -1,13 +1,13 @@ function minSubArrayLen(target: number, nums: number[]): number { const n = nums.length; - let s = 0; + let s = nums[0]; let ans = n + 1; - for (let i = 0, j = 0; i < n; ++i) { - s += nums[i]; - while (s >= target) { + for (let i = 0, j = 0; i < n; ) { + if (s >= target) { ans = Math.min(ans, i - j + 1); s -= nums[j++]; } + if (s < target) s += nums[++i]; } return ans === n + 1 ? 0 : ans; }