209.minimum-size-subarray-sum.go 343 B

12345678910111213141516
  1. func minSubArrayLen(s int, nums []int) int {
  2. sum, minLen := 0, len(nums)
  3. for slow, fast := 0, 0; fast < len(nums); fast++ {
  4. sum += nums[fast]
  5. for ; s <= sum-nums[slow] && slow < fast; slow++ {
  6. sum -= nums[slow]
  7. }
  8. if s <= sum && fast-slow < minLen {
  9. minLen = fast - slow + 1
  10. }
  11. }
  12. if s <= sum {
  13. return minLen
  14. }
  15. return 0
  16. }