[leetcode]Sudoku Solver
2014-02-27 09:45
309 查看
Sudoku Solver
Total Accepted: 4129 TotalSubmissions: 20589My Submissions
Write a program to solve a Sudoku puzzle by filling the empty cells.
Empty cells are indicated by the character
'.'.
You may assume that there will be only one unique solution.
A sudoku puzzle...
本题用回溯法(递归),检查每个格子,如果是‘.’ 用1到9 依次带入试验,
比如带入‘1’时,如果(isValid)&&(solve)为true 说明可行,不可行的话复位‘.’
class Solution { public: void solveSudoku(vector<vector<char> > &board) { solve(board); } bool solve(vector<vector<char> > &board){ for(int i=0; i<9; i++){ for(int j=0; j<9; j++){ if(board[i][j]=='.'){ for(char now='1'; now<='9';now++){ board[i][j]=now; if(isValid(board,i,j) && solve(board)) return true; else board[i][j]='.'; } return false; } } } return true; } bool isValid(vector<vector<char>> &board, int row, int col){ for(int j=0; j<9; j++){//检查所在行 char checkch=board[row][j]; if(j!=col && checkch==board[row][col] ) return false; } for(int i=0; i<9; i++){//检查所在列 char checkch=board[i][col]; if(i!=row && checkch==board[row][col]) return false; } for(int i=(row/3)*3; i<(row/3)*3+3; i++){ for(int j=(col/3)*3; j<(col/3)*3+3; j++){ char checkch=board[i][j]; if(i!=row && j!=col && checkch==board[row][col]) return false; } } return true; } };
相关文章推荐
- Sudoku Solver 破解数独 @LeetCode 附DFS感想
- 【Leetcode】【python】Sudoku Solver
- LeetCode 37 Sudoku Solver
- LeetCode:Valid Sudoku与Sudoku Solver
- [LeetCode]037-Sudoku Solver
- Leetcode Sudoku Solver
- LEETCODE —— Sudoku Solver
- leetcode:sudoku solver
- [leetcode 37] Sudoku Solver
- LeetCode题解——Sudoku Solver
- LeetCode - Sudoku Solver
- LeetCode 37. Sudoku Solver(数读游戏)
- leetcode-Sudoku Solver
- LeetCode 37 SudoKu Solver
- [Leetcode] 37. Sudoku Solver
- leetcode 37 Sudoku Solver
- [leetcode 37]sudoku solver
- leetcode: Sudoku Solver
- leetcode-Sudoku Solver
- Sudoku Solver [LeetCode]