Menu
CoddyTech

Minimum Size Subarray Sum

Kamu mendapat bilangan bulat positif target dan sebuah array nums yang berisi bilangan bulat positif. Temukan subarray terpendek (rangkaian elemen yang bersebelahan) yang jumlahnya setidaknya target, lalu kembalikan panjangnya. Jika tidak ada subarray yang mencapai target, kembalikan 0.

Fungsi

minSubArrayLen(target: integer, nums: integer-array) → integer
targetinteger
jumlah yang harus dicapai atau dilewati oleh sebuah subarray
numsinteger-array
array bilangan bulat positif
Mengembalikaninteger
panjang subarray terpendek dengan jumlah setidaknya target, atau 0 jika tidak ada

Batasan

  • 1 ≤ target ≤ 109
  • 1 ≤ nums.length ≤ 2 × 104
  • 1 ≤ nums[i] ≤ 104

Contoh

Input
target = 15nums = [4, 2, 9, 3, 7, 1, 5]
Output
3
Penjelasan
Tidak ada dua angka yang bersebelahan yang jumlahnya mencapai 15: pasangan dengan jumlah terbesar adalah 9 + 3 = 12. Tiga angka bisa: 4 + 2 + 9 = 15 dan 9 + 3 + 7 = 19, jadi jawabannya adalah 3.
challenge icon

Pertanyaan lanjutan

Bagaimana kamu akan menyelesaikannya jika nums juga dapat berisi nol dan angka negatif, sehingga teknik sliding window tidak lagi berfungsi?

Reset kode
def minSubArrayLen(target, nums):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

target = 15
nums = [4, 2, 9, 3, 7, 1, 5]

Output yang diharapkan

3