diff --git a/leetcode/0209.Minimum-Size-Subarray-Sum/209. Minimum Size Subarray Sum.go b/leetcode/0209.Minimum-Size-Subarray-Sum/209. Minimum Size Subarray Sum.go index 3c7a1436..acedf56c 100644 --- a/leetcode/0209.Minimum-Size-Subarray-Sum/209. Minimum Size Subarray Sum.go +++ b/leetcode/0209.Minimum-Size-Subarray-Sum/209. Minimum Size Subarray Sum.go @@ -1,24 +1,16 @@ package leetcode -func minSubArrayLen(s int, nums []int) int { - n := len(nums) - if n == 0 { - return 0 - } - left, right, res, sum := 0, -1, n+1, 0 - for left < n { - if (right+1) < n && sum < s { - right++ - sum += nums[right] - } else { +func minSubArrayLen(target int, nums []int) int { + left, sum, res := 0, 0, len(nums)+1 + for right, v := range nums { + sum += v + for sum >= target { + res = min(res, right-left+1) sum -= nums[left] left++ } - if sum >= s { - res = min(res, right-left+1) - } } - if res == n+1 { + if res == len(nums)+1 { return 0 } return res diff --git a/website/content/ChapterFour/0200~0299/0209.Minimum-Size-Subarray-Sum.md b/website/content/ChapterFour/0200~0299/0209.Minimum-Size-Subarray-Sum.md index 446bca92..806093ae 100644 --- a/website/content/ChapterFour/0200~0299/0209.Minimum-Size-Subarray-Sum.md +++ b/website/content/ChapterFour/0200~0299/0209.Minimum-Size-Subarray-Sum.md @@ -34,30 +34,29 @@ If you have figured out the O(n) solution, try coding another solution of which package leetcode -func minSubArrayLen(s int, nums []int) int { - n := len(nums) - if n == 0 { - return 0 - } - left, right, res, sum := 0, -1, n+1, 0 - for left < n { - if (right+1) < n && sum < s { - right++ - sum += nums[right] - } else { +func minSubArrayLen(target int, nums []int) int { + left, sum, res := 0, 0, len(nums)+1 + for right, v := range nums { + sum += v + for sum >= target { + res = min(res, right-left+1) sum -= nums[left] left++ } - if sum >= s { - res = min(res, right-left+1) - } } - if res == n+1 { + if res == len(nums)+1 { return 0 } return res } +func min(a int, b int) int { + if a > b { + return b + } + return a +} + ```