물음표 살인마의 개발블로그

알고리즘 문제/Leetcode

209. Minimum Size Subarray Sum

BEstyle 2023. 4. 4. 20:09

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 <= 109
  • 1 <= nums.length <= 105
  • 1 <= nums[i] <= 104

 

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)).

 


class Solution:
    def minSubArrayLen(self, target: int, nums: List[int]) -> int:
        ans=len(nums)+1
        total=left=right=0
        for i in range(len(nums)):
            total+=nums[right]
            while total>=target:
                ans=min(ans, right-left+1)
                total-=nums[left]
                left+=1
            right+=1
            
        return ans if sum(nums)>=target else 0

'알고리즘 문제 > Leetcode' 카테고리의 다른 글

1570. Dot Product of Two Sparse Vectors  (0) 2023.04.11
1265. Print Immutable Linked List in Reverse  (0) 2023.04.11
229. Majority Element II  (0) 2023.04.04
287. Find the Duplicate Number  (0) 2023.04.04
62. Unique Paths  (0) 2023.04.04