Minimum Size Subarray Sum
Musbat butun sonlar massivi nums va musbat butun sonli target berilgan, yig'indisi targetdan katta yoki teng bo'lgan pastki qatorning minimal uzunligini qaytaring. Agar bunday pastki qator bo'lmasa, uning o'rniga 0 ni qaytaring.
Example 1:
Input: target = 7, nums = [2,3,1,2,4,3]
Output: 2
Explanation: Kichik massiv [4,3] muammo cheklovi ostida minimal uzunlikka ega.Example 2:
Input: target = 4, nums = [1,4,4]
Output: 1Example 3:
Input: target = 11, nums = [1,1,1,1,1,1,1,1]
Output: 0Cheklovlar:
1 <= target <= 10^91 <= nums.length <= 10^51 <= nums[i] <= 10^4
Kuzatish: Agar siz O(n) yechimini topgan boʻlsangiz, vaqt murakkabligi O(n log(n)) boʻlgan boshqa yechimni kodlab koʻring.
func minSubArrayLen(target int, nums []int) int {
l, s := 0, 0
m := math.MaxInt32
for r := 0; r < len(nums); r++ {
s += nums[r]
for s >= target {
m = min(m, r-l+1)
s -= nums[l]
l++
}
}
if m == math.MaxInt32 {
return 0
} else {
return m
}
}© Leetcode link
Last updated
Was this helpful?