Backtracking Algorithms
Learn more about Backtracking Algorithms in DSA Self Paced Course
Practice Problems on Backtracking Algorithms
Top Quizzes on Backtracking Algorithms
What is Backtracking?
Backtracking can be defined as a general algorithmic technique that considers searching every possible combination in order to solve a computational problem.
What is Backtracking Algorithm?
Backtracking is an algorithmic technique for solving problems recursively by trying to build a solution incrementally, one piece at a time, removing those solutions that fail to satisfy the constraints of the problem at any point of time (by time, here, is referred to the time elapsed till reaching any level of the search tree).
Types of Backtracking Algorithm
There are three types of problems in backtracking
- Decision Problem – In this, we search for a feasible solution.
- Optimization Problem – In this, we search for the best solution.
- Enumeration Problem – In this, we find all feasible solutions.
When can be Backtracking Algorithm used?
For example, consider the SudoKo solving Problem, we try filling digits one by one. Whenever we find that current digit cannot lead to a solution, we remove it (backtrack) and try next digit. This is better than naive approach (generating all possible combinations of digits and then trying every combination one by one) as it drops a set of permutations whenever it backtracks.
Topics :
- Introduction to Backtracking – Data Structure and Algorithm Tutorials
- Difference between Backtracking and Branch-N-Bound technique
- What is the difference between Backtracking and Recursion?
Standard Problems on Backtracking:
- The Knight’s tour problem
- Rat in a Maze
- N Queen Problem | Backtracking-3
- Subset Sum problem
- m Coloring Problem
- Hamiltonian Cycle
- Sudoku | Backtracking-7
- Magnet Puzzle
- Remove Invalid Parentheses
- A backtracking approach to generate n bit Gray Codes
- Write a program to print all permutations of a given string
Some Practice problems on Backtracking:
- Easy:
- Backtracking to find all subsets
- Check if a given string is sum-string
- Count all possible paths between two vertices
- Find all distinct subsets of a given set
- Find if there is a path of more than k length from a source
- Print all paths from a given source to a destination
- Print all possible strings that can be made by placing spaces
- Medium:
- Hard:
- Power Set in Lexicographic order
- Word Break Problem using Backtracking
- Partition of a set into K subsets with equal sum
- Longest Possible Route in a Matrix with Hurdles
- Find shortest safe route in a path with landmines
- Print all palindromic partitions of a string
- Printing all solutions in N-Queen Problem
- Print all longest common sub-sequences in lexicographical order
- Learn Data Structure and Algorithms | DSA Tutorial
- Top 20 Backtracking Algorithm Interview Questions
- ‘Practice Problems’ on Backtracking
- ‘Quiz’ on Backtracking
- ‘Videos’ on Backtracking
If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.