LeetCode in Kotlin

209. Minimum Size Subarray Sum

Medium

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

Solution

class Solution {
    fun minSubArrayLen(s: Int, nums: IntArray): Int {
        var sum = 0
        var start = 0
        var minLength = Integer.MAX_VALUE
        var end = 0
        if (nums.size < 1) {
            return 0
        }
        while (end < nums.size) {
            sum += nums[end]
            while (sum >= s) {
                minLength = Math.min(minLength, end - start + 1)
                sum -= nums[start++]
            }
            end++
        }
        return if (start > 0) minLength else 0
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy