One Pager Cheat Sheet
Backtrackingis a powerful algorithm used to explore all potential solutions to a problem and identify those that satisfy aconstraint, making it a useful tool for Combinatorial, Path Finding, and Sudoku Solving.- The algorithm of 
backtrackingcreates asearch treeand explores it in a depth first manner to find candidate solutions that can be pruned to become more efficient. - Finding all possible combinations of items from a set of size 
Nis an example of acombinatoricsproblem that can be solved with a pseudo code solution. - The algorithmic solution builds an implicit search tree starting with an empty set, and explores certain paths while abandoning others in order to find all possible combinations in an efficient manner.
 - We can modify our 
combosNcode to find allNcombinations whosesum < S, with an even more efficient version when the array is sorted. - We can use 
backtrackingto enumerate all possible paths from astartlocation to atargetlocation in a square grid by making alternating "up" and "right" moves. - By backtracking through all possible paths of an 
m * ngrid, this code provides a simple C++ implementation to list out all paths from a given cell, and prints them if they reach thegoal/targetcell. - Find a 
paththrough amazeby abandoning earlier on in the search any paths leading to cells forbidden to the robot. - The C++ code implements an algorithm which 
backtracksfrom pits or previous cells to enumerate all paths through a binary 2D array, which serves as a representation of the maze. - Solving 
Sudokuinvolves usingbacktrackingto fill out anN * Ngrid with numbers from1 .. Nso that no row or column contains a repeated number. - We can solve Sudoku using a simple backtracking routine and an accompanying 
C++ implementation. - Backtracking is an important technique for enumerating all possible solutions satisfying a given constraint and 
software engineersshould beware of its complexity and carefully plan how to optimize their code before using it. - Step b of 
Combosshould be changed to unconditionally display the set and no additional checks should be made to determine the size, so that all possible combinations of any size can be printed. - There are 70 distinct paths between 
(0,0)and(4,4)in a5x5grid, which can be calculated using the factorial formula to calculate the number of ways to arrange the 24 distinct paths that must be traveled. 

