ব্যাকট্র্যাকিং ক্রমবর্ধমান প্রার্থী সমাধান তৈরি করে এবং একটি আংশিক প্রার্থী পরিত্যাগ করে (পিছিয়ে যায়) যখনই এটি একটি বৈধ সমাধানে পৌঁছাতে পারে না। এটি DFS এর মাধ্যমে সমাধান স্থানটি পদ্ধতিগতভাবে অন্বেষণ করে, মৃত প্রান্তগুলি কাটা করে।
ধারণা
নির্বাচন করুন -> অন্বেষণ করুন -> পছন্দ বাতিল করুন। একটি বিকল্প চেষ্টা করুন, পুনরাবৃত্তি করুন; যদি ব্যর্থ হয়, এটি পূর্বাবস্থায় ফিরিয়ে দিন এবং পরবর্তীটি চেষ্টা করুন।
উদাহরণ: সব পারমিউটেশন
():
result = []
():
remaining:
result.append(path[:])
i ((remaining)):
path.append(remaining[i])
backtrack(path, remaining[:i] + remaining[i+:])
path.pop()
backtrack([], nums)
result
permutations([, , ])
