Leetcode - Minimum Size Subarray Sum
violet
posted @ Apr 08, 2020 06:19:03 AM
in 算法
with tags
Algorithm Golang SlidingWindow array
, 254 阅读
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.
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 }