Backtracking tibni soluzzjonijiet kandidati gradwalment u iċċancella (ترجع lura minn) kandidat parzjali hekk kif ma jistax iwassal għal soluzzjoni valida. Tesplorax l-ispazju tas-soluzzjoni sistematikament permezz ta' DFS, iqatgħax it-triqat mejda.
L-idea
Iżgħaż -> esplorax -> neqża l-għażla. Ipprova għażla, rikursjoni; jekk tisqaq, irrewerta u ipprova li jmiss.
Eżempju: il-permutazzjonijiet kollha
():
result = []
():
remaining:
result.append(path[:])
i ((remaining)):
path.append(remaining[i])
backtrack(path, remaining[:i] + remaining[i+:])
path.pop()
backtrack([], nums)
result
permutations([, , ])
