Backtracking ngbangun solusi kandidat kanthi bertahap lan ninggalake (mundur saka) kandidat parsial sawise ora bisa dadi solusi sing sah. Iki nggali ruang solusi kanthi sistematis liwat DFS, ngpotong jalan buntu.
Ideipun
Pilih -> gali -> batal pilihan. Coba siji opsi, rekursi; yen gagal, batal lan coba sing liya.
Contoh: kabeh permutasi
():
result = []
():
remaining:
result.append(path[:])
i ((remaining)):
path.append(remaining[i])
backtrack(path, remaining[:i] + remaining[i+:])
path.pop()
backtrack([], nums)
result
permutations([, , ])
