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: 1

Example 3:

Input: target = 11, nums = [1,1,1,1,1,1,1,1]
Output: 0

Cheklovlar:

  • 1 <= target <= 10^9

  • 1 <= nums.length <= 10^5

  • 1 <= 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?