leetcode 37 sudoku solver
2018-01-28 20:05
471 查看
emmm暴力dfs。。。真的爆力
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board, int x,int y) {
int i, j;
for (i = 0; i < 9; i++)
if (i != x && board[i][y] == board[x][y])
return false;
for (j = 0; j < 9; j++)
if (j != y && board[x][j] == board[x][y])
return false;
for (i = 3 * (x / 3); i < 3 * (x / 3 + 1); i++)
for (j = 3 * (y / 3); j < 3 * (y / 3 + 1); j++)
if (i != x && j != y && board[i][j] == board[x][y])
return false;
return true;
}
bool dfs(vector<vector<char>>& board) {
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 9; ++j) {
if (board[i][j] == '.') {
for (int k = 1; k <= 9; ++k) {
board[i][j] = '0' + k;
if (isValidSudoku(board, i, j) && dfs(board))
return true;
else
board[i][j] = '.';
}
return false;
}
}
}
return true;
}
void solveSudoku(vector<vector<char>>& board) {
dfs(board);
}
};
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board, int x,int y) {
int i, j;
for (i = 0; i < 9; i++)
if (i != x && board[i][y] == board[x][y])
return false;
for (j = 0; j < 9; j++)
if (j != y && board[x][j] == board[x][y])
return false;
for (i = 3 * (x / 3); i < 3 * (x / 3 + 1); i++)
for (j = 3 * (y / 3); j < 3 * (y / 3 + 1); j++)
if (i != x && j != y && board[i][j] == board[x][y])
return false;
return true;
}
bool dfs(vector<vector<char>>& board) {
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 9; ++j) {
if (board[i][j] == '.') {
for (int k = 1; k <= 9; ++k) {
board[i][j] = '0' + k;
if (isValidSudoku(board, i, j) && dfs(board))
return true;
else
board[i][j] = '.';
}
return false;
}
}
}
return true;
}
void solveSudoku(vector<vector<char>>& board) {
dfs(board);
}
};
相关文章推荐
- LeetCode37 Sudoku Solver
- leetcode 37. Sudoku Solver
- leetcode 37:Sudoku Solver
- LeetCode 37 Sudoku Solver
- LeetCode: 37. Sudoku Solver
- LeetCode_37 Sudoku Solver
- LeetCode 37 Sudoku Solver(求解数独)(*)
- LeetCode 37. Sudoku Solver(数独Ⅱ)
- LeetCode 37 SudoKu Solver
- LeetCode 37 Sudoku Solver
- leetcode习题解答:37. Sudoku Solver
- [Leetcode 103] 37 Sudoku Solver
- LeetCode-37-Sudoku Solver, list转字符串join,回溯
- python实现 LeetCode37——Sudoku Solver
- Leetcode||37. Sudoku Solver
- 【LeetCode题意分析&解答】37. Sudoku Solver
- [LeetCode 36&37] Valid Sudoku & Sudoku Solver (数独问题)
- leetcode - 37.Sudoku Solver
- LeetCode - 37. Sudoku Solver
- LeetCode 37. Sudoku Solver