LeetCode Sudoku Solver
2015-03-02 13:58
375 查看
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.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Sudoku-by-L2G-20050714.svg/250px-Sudoku-by-L2G-20050714.svg.png)
A sudoku puzzle...
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/31/Sudoku-by-L2G-20050714_solution.svg/250px-Sudoku-by-L2G-20050714_solution.svg.png)
题意:数独游戏
思路:回溯解决,是不是好久没写了,开标记数组老是错
Empty cells are indicated by the character
'.'.
You may assume that there will be only one unique solution.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Sudoku-by-L2G-20050714.svg/250px-Sudoku-by-L2G-20050714.svg.png)
A sudoku puzzle...
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/31/Sudoku-by-L2G-20050714_solution.svg/250px-Sudoku-by-L2G-20050714_solution.svg.png)
题意:数独游戏
思路:回溯解决,是不是好久没写了,开标记数组老是错
class Solution { public: bool check(vector<vector<char> > &board, int position) { int x = position / 9; int y = position % 9; for (int i = 0; i < 9; i++) if (i != x && board[i][y] == board[x][y]) return false; for (int j = 0; j < 9; j++) if (j != y && board[x][j] == board[x][y]) return false; for (int i = x / 3 * 3; i < (x / 3 + 1) * 3; i++) for (int j = y / 3 * 3; j < (y / 3 + 1) * 3; j++) if (i != x && j != y && board[i][j] == board[x][y]) return false; return true; } bool solve(vector<vector<char> > &board, int position) { if (position == 81) return true; int row = position / 9; int col = position % 9; if (board[row][col] == '.') { for (int i = 1; i <= 9; i++) { board[row][col] = i + '0'; if (check(board, position) && solve(board, position+1)) return true; board[row][col] = '.'; } } else { if (solve(board, position + 1)) return true; } return false; } void solveSudoku(vector<vector<char> > &board) { solve(board, 0); } };
相关文章推荐
- Leetcode : Sudoku Solver
- LeetCode "Sudoku Solver"
- 37. Sudoku Solver Leetcode Python
- leetcode Sudoku Solver
- leetcode Sudoku Solver
- [LeetCode]37 Sudoku Solver
- LeetCode Sudoku Solver
- [leetcode]Sudoku Solver
- leetcode Sudoku Solver 解法优化
- LeetCode: sudoku solver and valid sudoku
- leetcode Sudoku Solver
- LeetCode : Sudoku Solver [java]
- Leetcode dfs Sudoku Solver
- [leetcode]Sudoku Solver @ Python
- LeetCode Sudoku Solver
- LeetCode: Sudoku Solver
- LeetCode(37)--Sudoku Solver
- [leetcode]Sudoku Solver @ Python
- LeetCode Sudoku Solver
- LeetCode Sudoku Solver 数独C++程序