Latihan 1 dari materi Backtracking di Algoritma — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function permutations(arr) supaya mengembalikan semua susunan (permutasi) isi arr, sebagai array berisi array.
Urutan susunannya bebas, tapi semuanya harus ada dan gak boleh ada yang dobel.
Satu angka pun tetap dibungkus: permutations([5]) mengembalikan [[5]].
Pakai pola backtracking: coba satu angka yang belum dipakai, lanjut menyusun sisanya, lalu batalkan.
Tiga console.log di bawahnya (yang mencetak banyaknya susunan) harus mencetak, berurutan:
6
24
1
Hint
Bangun satu susunan sedikit demi sedikit: pilih satu angka yang belum dipakai, lanjut memilih sisanya, lalu batalkan pilihan itu supaya angka lain bisa dicoba di posisi yang sama.
Di dalam permutations, siapkan array current untuk susunan yang sedang dibangun, array dipakai berisi false, dan function backtrack(). Kalau current.length === arr.length, simpan salinannya ke result.
for (let i = 0; i < arr.length; i++) { if (dipakai[i]) continue; dipakai[i] = true; current.push(arr[i]); backtrack(); current.pop(); dipakai[i] = false; }
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...