Minimum Size Subarray Sum

LeetCode 209 · View on LeetCode

Find the shortest contiguous subarray with sum ≥ target. Expand right to build sum, shrink left while still valid, track the minimum length.

package main

import "fmt"

func minSubArrayLen(target int, nums []int) int {
	left, sum := 0, 0
	best := len(nums) + 1
	for right := 0; right < len(nums); right++ {
		sum += nums[right]
		for sum >= target {
			if right-left+1 < best {
				best = right - left + 1
			}
			sum -= nums[left]
			left++
		}
	}
	if best > len(nums) {
		return 0
	}
	return best
}

func main() {
	fmt.Println(minSubArrayLen(7, []int{2, 3, 1, 2, 4, 3})) // 2
	fmt.Println(minSubArrayLen(4, []int{1, 4, 4}))           // 1
	fmt.Println(minSubArrayLen(11, []int{1, 1, 1, 1, 1}))    // 0
}
▶ Open Go Playground

Copy the code above and paste to run

© 2026 ByteLearn.dev. Free courses for developers. · Privacy