Leetcode - Minimum Size Subarray Sum
https://leetcode.com/problems/minimum-size-subarray-sum/
Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead.
Example:
Input:s = 7, nums = [2,3,1,2,4,3]
Output: 2 Explanation: the subarray[4,3]
has the minimal length under the problem constraint.
A typical sliding window problem.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | func minSubArrayLen(s int , nums [] int ) int { if len(nums) == 0 { return 0 } sum := 0 left := 0 min := math.MaxInt32 for right := 0; right < len(nums); right++ { sum += nums[right] for sum >= s { if right - left + 1 < min { min = right - left + 1 } sum -= nums[left] left++ } } if min == math.MaxInt32 { return 0 } return min } |