બેકટ્રેકિંગ અમુક ઉકેલોને ધીમે ધીમે બનાવે છે અને છોડી દે છે (પાછળ ફર્કે છે) આંશિક ઉમેદવાર તરીકે જલદી જ તે માન્ય ઉકેલ તરફ દોરી શકતું નથી. તે DFS દ્વારા સમાધાન સ્થાનને વ્યવસ્થિત રીતે અનુસંધાન કરે છે, મૃત છેડાને છાંટી કાઢે છે.
આ વિચાર
પસંદ કરો -> શોધો -> અનપસંદ કરો. એક વિકલ્પ પર પ્રયાસ કરો, પુનરાવર્તિત કરો; જો તે નિષ્ફળ જાય, તો તેને પરિવર્તન કરો અને આગલો પ્રયાસ કરો.
ઉદાહરણ: બધી ક્રમચય
():
result = []
():
remaining:
result.append(path[:])
i ((remaining)):
path.append(remaining[i])
backtrack(path, remaining[:i] + remaining[i+:])
path.pop()
backtrack([], nums)
result
permutations([, , ])
