Files
leetcode/862-shortest-subarray-with-sum-at-least-k.go

33 lines
458 B
Go

package main
func ShortestSubarray(nums []int, k int) int {
if len(nums) == 0 {
return -1
}
sz := 999999
prefix := make([]int, len(nums)+1)
for i := 1; i <= len(nums); i++ {
prefix[i] = prefix[i-1] + nums[i-1]
}
for i := 0; i < len(nums); i++ {
for j := i; j < len(nums); j++ {
sum := prefix[j+1] - prefix[i]
if sum >= k {
l := j - i + 1
if sz > l {
sz = l
}
}
}
}
if sz == 999999 {
sz = -1
}
return sz
}