└── java /java: -------------------------------------------------------------------------------- 1 | class Solution { 2 | public void solveSudoku(char[][] board) { 3 | if(board == null || board.length == 0) 4 | return; 5 | solve(board); 6 | } 7 | public boolean solve(char[][] board){ 8 | for(int i = 0; i < board.length; i++){ 9 | for(int j = 0; j < board[0].length; j++){ 10 | if(board[i][j] == '.'){ 11 | for(char c = '1'; c <= '9'; c++){ 12 | if(isValid(board, i, j, c)){ 13 | board[i][j] = c; 14 | if(solve(board)) 15 | return true; 16 | else 17 | board[i][j] = '.'; 18 | } 19 | } 20 | return false; 21 | } 22 | } 23 | } 24 | return true; 25 | } 26 | private boolean isValid(char[][] board, int row, int col, char c){ 27 | for(int i = 0; i < 9; i++) { 28 | if(board[i][col] != '.' && board[i][col] == c) return false; 29 | if(board[row][i] != '.' && board[row][i] == c) return false; 30 | if(board[3 * (row / 3) + i / 3][3 * (col / 3) + i % 3] != '.' && board[3 * (row / 3) + i / 3][3 * (col / 3) + i % 3] == c) return false; 31 | } 32 | return true; 33 | } 34 | } 35 | --------------------------------------------------------------------------------