बैकट्रैकिंग हे अभ्यर्थी समाधान वाढीने तयार करते आणि आंशिक अभ्यर्थी सोडून देते (बैकट्रैक करते) जेव्हा तो वैध समाधानाकडे नेऊ शकत नाही. ते DFS द्वारे समाधान स्पेसचे व्यवस्थित शोधन करते, मृत टोके कापून देते.
The idea
Choose -> explore -> un-choose. एक पर्याय वापरा, पुनरावृत्ती करा; जर ते अयोग्य हो, तर ते पूर्ववत करा आणि पुढील वापरा.
Example: all permutations
():
result = []
():
remaining:
result.append(path[:])
i ((remaining)):
path.append(remaining[i])
backtrack(path, remaining[:i] + remaining[i+:])
path.pop()
backtrack([], nums)
result
permutations([, , ])
