Backtracking
Backtracking
Start Point
While (More possibilities remain)
For each path from start point
Check if it is a safe path
|— If Yes, select it, Recursive calls to rest paths
|— Undo this move
|— If No, continue.
Template
tempList.push_back(nums[i]);
// used[i] = true;
backtrack(list, tempList, nums, i+1);
// used[i] = false;
tempList.pop_back();
}
}
sort(nuts.begin(), nuts.end());
backtrack(list, tempList, nums, 0);
}
Backtracking
Sudoku Solver
class Solution {
public:
bool isVal(vector<vector<char>>& board, int row, int col, int guess) {
char ch = '0' + guess;
int j = i+1;
if (backtrack(board, j/9, j%9)) return true;
board[i/9][i%9] = '.';
}
}
return false;
}
return true;
}