Skip to content
the poor coder

Leetcode - Minimum Size Subarray Sum Solution

Poor Man
Published
Updated
Reading time
1 min read

Given an array of positive integers nums and a positive integer target, return the minimal length of a contiguous subarray [numsl, numsl+1, ..., numsr-1, numsr] of which the sum is greater than or equal to target. If there is no such subarray, return 0 instead.

Example 1:

Text
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:

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

Example 3:

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

Constraints:

  • 1 <= target <= 109
  • 1 <= nums.length <= 105
  • 1 <= nums[i] <= 105

Follow up: If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log(n)).

Solution in python#

Python
class Solution:
    def minSubArrayLen(self, target: int, nums: List[int]) -> int:
        l = 0
        r = 0
        s = 0
        m = float('inf')
        while r<len(nums):
            while s<target and r<len(nums):
                s += nums[r]
                r +=1
            while s>=target and l<len(nums):
                if s >= target:
                    m = min(m,r-l)
                s -= nums[l]
                l += 1

        if m == float('inf'):
            return 0
        return m

Keep going

2021

Leetcode - Sort Colors Solution

Given an array nums with n objects colored red, white, or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white, and blue. We will use the integers 0, 1, and 2…

2021

Leetcode - Remove Element Solution

Given an array nums and a value val, remove all instances of that value in-place and return the new length. Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1)…

ESC