题目:
给定一个含有 n
个正整数的数组和一个正整数 target
。
找出该数组中满足其和 ≥ target
的长度最小的连续子数组 [numsl, numsl+1, ..., numsr-1, numsr]
,并返回其长度。如果不存在符合条件的子数组,返回 0
。
1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 105
题解一:
滑动窗口
可以很好的解决。先贴代码(Go):
func minSubArrayLen(target int, nums []int) int {
l, r, n, minValue := 0, 0, len(nums), math.MaxInt32 //[i,r]
sum := 0
for r < n && l <= r {
sum += nums[r]
for sum >= target