Minimum Size Subarray Sum⚓︎
Description⚓︎
Given an array of positive integers nums and a positive integer target, return the minimal length of a subarray (A subarray is a contiguous non-empty sequence of elements within an array) 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^91 <= nums.length <= 10^51 <= nums[i] <= 10^4
Solution⚓︎
Sliding Window (Double Pointer)⚓︎
left and right represent the start and end of the sliding window, respectively. We move right forward to expand the window and add to the sum. When the sum reaches or exceeds the target, we update the minimum length and shrink the window from the left by incrementing left and subtracting that element from the sum. This process repeats until right has traversed the entire array.
- Time complexity: \(O(n)\);
- Space complexity: \(O(1)\).