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 }