Swift LeetCode SlideWindow

209. Minimum Size Subarray Sum

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:

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:

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

Question

class Solution {
func minSubArrayLen(_ target: Int, _ nums: [Int]) -> Int {
}
}

Solution

func minSubArrayLen(_ target: Int, _ nums: [Int]) -> Int {   var windowSum = 0, windowStart = 0   var minWindowSize = Int.max   for windowEnd in 0..<nums.count{   windowSum += nums[windowEnd]   while (windowSum >= target) {     minWindowSize = min(minWindowSize, windowEnd - windowStart + 1)     windowSum -= nums[windowStart]     windowStart += 1   }  } return minWindowSize == Int.max ? 0 : minWindowSize}

More: https://www.youtube.com/watch?v=7Q1uylXOatU

--

--

Major in physical education. Football referee. And high interest in looking the world through the numbers.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Mario tsai

Major in physical education. Football referee. And high interest in looking the world through the numbers.