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.
Solution:
public class Solution {
public void solveSudoku(char[][] board) {
solve(board);
}
public boolean solve(char[][] board) {
for(int i=0; i<9; i++){
for(int j=0; j<9; j++){
if(board[i][j]=='.'){
for(char c='1'; c<='9'; c++){
if(isValid(board,i,j,c)){
board[i][j] = c;
if(solve(board)) return true;
board[i][j] = '.';
}
}
return false;
}
}
}
return true;
}
public boolean isValid(char[][] board, int i, int j, char c){
for(int x=0; x<9; x++){
if(board[x][j]==c) return false;
if(board[i][x]==c) return false;
if(board[i/3*3+x/3][j/3*3+x%3]==c) return false;
}
return true;
}
}