Latihan 1 dari materi Sliding Window di Algoritma — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function maxSumSubarray(arr, k) supaya mengembalikan jumlah terbesar dari k angka yang bersebelahan di arr. Pakai cara sliding window:
Jumlahkan k angka pertama. Itu jendela pertama, sekaligus maksimum sementara.
Geser jendela satu langkah tiap putaran: tambah angka yang masuk (arr[i]), kurangi angka yang keluar (arr[i - k]).
Simpan jumlah yang terbesar, lalu return sesudah loop.
Function-nya harus benar untuk k berapa pun, jadi pakai k dari parameter.
Tiga console.log di bawahnya harus mencetak, berurutan:
9
10
8
Hint
Jumlahkan dulu k angka pertama. Setelah itu, tiap kali jendela geser satu langkah, ada satu angka yang masuk dan satu angka yang keluar.
Pakai dua loop for yang terpisah, bukan bersarang: yang pertama dari 0 sampai k, yang kedua dari k sampai arr.length. Simpan jumlah terbesar di variabel maksimum.
let maksimum = jumlah; for (let i = k; i < arr.length; i++) { jumlah += arr[i] - arr[i - k]; if (jumlah > maksimum) maksimum = jumlah; } return maksimum;
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...