@@ -0,0 +1,1360 @@
+public class Solution %7B%0A    public void solveSudoku(char%5B%5D%5B%5D board) %7B%0A        if(board == null %7C%7C board.length != 9 %7C%7C board%5B0%5D.length != 9) return;  %0A        backtrack(board, 0, 0);%0A    %7D%0A    %0A    private boolean backtrack(char%5B%5D%5B%5D board, int x, int y) %7B%0A        if(x == 9) return true;%0A        if(y == 9) return backtrack(board, x + 1, 0);%0A        %0A        if(board%5Bx%5D%5By%5D == '.') %7B%0A            for(char c = '1'; c%3C='9'; c++) %7B%0A                board%5Bx%5D%5By%5D = c;%0A                if(isValid(board, x, y) && backtrack(board, x, y + 1)) return true;%0A                board%5Bx%5D%5By%5D = '.';%0A            %7D%0A            return false;%0A        %7D%0A        else %7B%0A            return backtrack(board, x, y+1);%0A        %7D%0A    %7D%0A    %0A    private boolean isValid(char%5B%5D%5B%5D board, int i, int j) %7B  %0A        for(int k=0;k%3C9;k++)  %0A        %7B  %0A            if(k!=j && board%5Bi%5D%5Bk%5D==board%5Bi%5D%5Bj%5D)  %0A                return false;  %0A        %7D  %0A        for(int k=0;k%3C9;k++)  %0A        %7B  %0A            if(k!=i && board%5Bk%5D%5Bj%5D==board%5Bi%5D%5Bj%5D)  %0A                return false;  %0A        %7D          %0A        for(int row = i/3*3; row%3Ci/3*3+3; row++)  %0A        %7B  %0A            for(int col=j/3*3; col%3Cj/3*3+3; col++)  %0A            %7B  %0A                if((row!=i %7C%7C col!=j) && board%5Brow%5D%5Bcol%5D==board%5Bi%5D%5Bj%5D)  %0A                    return false;  %0A            %7D  %0A        %7D  %0A        return true;  %0A    %7D  %0A%7D%0A

Create Sudoku_Solver.java