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