Menu
CoddyTech

Subarray Sum Equals K

Kamu mendapatkan sebuah array bilangan bulat nums dan sebuah bilangan bulat k. Hitung jumlah subarray yang elemen-elemennya berjumlah tepat k. Subarray adalah rangkaian satu elemen atau lebih yang bersebelahan. Dua subarray dihitung secara terpisah jika dimulai atau berakhir pada posisi yang berbeda, meskipun nilainya sama. Nilainya bisa negatif atau nol.

Fungsi

subarraySum(nums: integer-array, k: integer) → integer
numsinteger-array
array bilangan bulat yang dapat menyimpan nilai negatif dan nol
kinteger
jumlah yang harus dicapai oleh sebuah subarray agar dihitung
Mengembalikaninteger
jumlah subarray yang elemen-elemennya berjumlah k

Batasan

  • 1 ≤ nums.length ≤ 2 × 104
  • -1000 ≤ nums[i] ≤ 1000
  • -107 ≤ k ≤ 107
  • An array sepanjang ini memiliki paling banyak 200,010,000 subarray, jadi jawabannya muat dalam integer signed 32-bit.

Contoh

Input
nums = [3, 4, -7, 1, 3, 3, 1, -4]k = 7
Output
4
Penjelasan
Empat perulangan berjumlah 7: [3, 4], [1, 3, 3], [3, 3, 1] dan [3, 4, -7, 1, 3, 3]. Pada yang terakhir, -7 membatalkan 3 dan 4.
challenge icon

Pertanyaan lanjutan

Bagaimana kamu mengubah solusi agar mengembalikan panjang subarray terpanjang yang jumlahnya sama dengan k, dengan waktu tetap O(n)?

Reset kode
def subarraySum(nums, k):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

nums = [3, 4, -7, 1, 3, 3, 1, -4]
k = 7

Output yang diharapkan

4