Skip to content
prdlk
Esc
↑↓navigate↵open⌘Jpreview
On this page

209. Minimum Size Subarray Sum

Given an array of positive integers nums and a positive integer target, return the minimal length of a subarray whose sum is greater than or equal to target. If there is no such subarray, return 0 instead

Example 1:

  • Input: target = 7, nums = [2,3,1,2,4,3]
  • Output: 2
  • Explanation: The subarray [4,3] has the minimal length under the problem constraint.

Example 2:

  • Input: target = 4, nums = [1,4,4]
  • Output: 1

Example 3:

  • Input: target = 11, nums = [1,1,1,1,1,1,1,1]
  • Output: 0

Constraints:

  • 1 <= target <= 10^9
  • 1 <= nums.length <= 10^5
  • 1 <= nums[i] <= 10^4

Solution

class Solution:
    def minSubArrayLen(self, target: int, nums: list[int]) -> int:
        window_sum = 0
        length = len(nums) + 1
        left = 0

        for right in range(len(nums)):
            window_sum += nums[right]
            while window_sum >= target:
                length = min(length, right - left + 1)
                window_sum -= nums[left]
                left += 1
        if length > len(nums):
            return 0
        return length

Last updated on October 1, 2026

Was this page helpful?