publicbooleandfs(char[][]board){ for (int i = 0; i < board.length; ++i) { for (int j = 0; j < board[0].length; ++j) { if (board[i][j] == '.') { for (char c = '1'; c <= '9'; ++c) { if (valid(board, i, j, c)) { board[i][j] = c; if (dfs(board)) { returntrue; } else { // the previous level board[i][j] = '.'; } } } returnfalse; } } } returntrue; }
publicbooleanvalid(char[][]board, int i, int j, char target){ // check row and column for (int index = 0; index < 9; ++index) { char c = board[i][index]; if (c == target) returnfalse; c = board[index][j]; if (c == target) returnfalse; } int row = (i / 3) * 3, column = (j / 3) * 3; for (i = row; i < row + 3; ++i) { for (j = column; j < column + 3; ++j) { if (board[i][j] == target) { returnfalse; } } } returntrue; }
近期评论