Sudoku Solver
Write a program to solve a Sudoku puzzle by filling the empty cells.
Empty cells are indicated by the character '.'
.
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class Solution { 2 public void solveSudoku(char[][] board) { 3 solve(board); 4 } 5 public boolean solve(char[][]board){ 6 for(int i=0;i<9;i++){ 7 for(int j=0;j<9;j++){ 8 if(board[i][j]=='.'){ 9 for(int k=1;k<=9;k++){ 10 board[i][j]=(char) (k+'0'); 11 if(isValid(board,i,j) && solve(board)) 12 return true; 13 else { 14 board[i][j] = '.'; 15 } 16 } 17 return false; 18 } 19 } 20 } 21 return true; 22 } 23 public boolean isValid(char[][]board,int x,int y){ 24 for(int i=0;i<board.length;i++){ 25 if(x!=i && board[x][y]==board[i][y]) return false; 26 } 27 for(int i=0;i<board.length;i++){ 28 if(y!=i && board[x][y]==board[x][i]) return false; 29 } 30 for(int i=3*(x/3);i<3*(x/3+1);i++){ 31 for(int j=3*(y/3);j<3*(y/3+1);j++){ 32 if(x!=i &&j!=y &&board[i][j]==board[x][y]) return false; 33 } 34 } 35 return true; 36 } 37 }