标签:func 时间 math return code 复杂 指针 subarray +=
// 滑动窗口 时间复杂度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
}
标签:func 时间 math return code 复杂 指针 subarray +=
原文地址:https://www.cnblogs.com/bighero404/p/13201080.html