Menu
CoddyTech

Longest Subarray with Sum K

Diberikan bilangan bulat nums dan target k, kembalikan panjang subarray terpanjang yang jumlah elemennya tepat k. Subarray adalah rentang elemen yang berurutan, dengan panjang minimal satu elemen. Beberapa nilai mungkin nol atau kurang dari nol. Jika tidak ada subarray yang jumlahnya sama dengan k, kembalikan 0.

Fungsi

longestSubarrayWithSumK(nums: integer-array, k: integer) → integer
numsinteger-array
bilangan bulat yang akan dicari, termasuk bilangan negatif dan nol
kinteger
jumlah tepat yang harus dimiliki subarray
Mengembalikaninteger
panjang subarray terpanjang yang jumlahnya sama dengan k, atau 0 jika tidak ada

Batasan

  • 1 ≤ nums.length ≤ 2 × 104
  • -104 ≤ nums[i] ≤ 104
  • -109 ≤ k ≤ 109
  • Setiap jumlah awalan tetap berada di antara -2 × 108 dan 2 × 108, jadi bilangan bulat 32-bit sudah cukup.
  • Kembalikan 0 jika tidak ada subarray yang jumlahnya sama dengan k.

Contoh

Input
nums = [2, -1, 3, 1, -4, 2, 3]k = 5
Output
5
Penjelasan
Tiga perulangan menghasilkan jumlah 5: [2, 3] di akhir, [2, -1, 3, 1] di awal, dan [3, 1, -4, 2, 3] pada indeks 2 sampai 6. Yang terakhir adalah yang terpanjang, dengan 5 elemen.
challenge icon

Pertanyaan lanjutan

Bagaimana cara menemukan subarray terpanjang yang jumlahnya paling banyak k, dengan nilai negatif tetap diperbolehkan?

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

Tes #1

Tes #2

Tes #3

Argumen

nums = [2, -1, 3, 1, -4, 2, 3]
k = 5

Output yang diharapkan

5