209. 长度最小的子数组
Posted bighero404
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了209. 长度最小的子数组相关的知识,希望对你有一定的参考价值。
// 滑动窗口 时间复杂度O(N)
func minSubArrayLen(s int, nums []int) int {
n := len(nums)
// l,r为左右边界指针
l, r := 0, 0
// 窗口的和
sum := 0
// 返回结果
res := math.MaxInt64
for r < n {
// 将右边界加入窗口中
rNum := nums[r]
sum += rNum
r++
// 如果现在的和满足条件
for sum >= s {
// 更新结果
res = getMin(res, r-l)
sum -= nums[l]
l++
}
}
// 如果res没有更新过代表没有满足条件的结果
if res == math.MaxInt64 {
res = 0
}
return res
}
func getMin(a, b int) int {
if a < b {
return a
}
return b
}
以上是关于209. 长度最小的子数组的主要内容,如果未能解决你的问题,请参考以下文章