Sudoku Solver(Do not pass)

来源:互联网 发布:姚明nba数据统计 编辑:程序博客网 时间:2024/05/23 14:26
    public void solveSudoku(char[][] board) {        // Start typing your Java solution below        // DO NOT write main() function        dfs(board);    }        public boolean dfs(char[][] board) {        int m = board.length;        if( m == 0) return true;        int n = board[0].length;        for(int i = 0; i < m; i++) {            for(int j = 0; j < n; j++) {                if(board[i][j] == '.') {                    for(int k = 0; k < 9; k++) {                        if(isValid(i, j, k, board) == true) {                            board[i][j] = (char) ('1' + k);                            if(dfs(board) == true) return true;                            else board[i][j] = '.';                        }                    }                    return false;                }            }        }        return true;    }        public boolean isValid(int row, int column, int k, char[][] board) {        for(int i = 0; i < row; i++) {            if(board[i][column] ==  (char) ('1' + k)) return false;        }        for(int i = 0; i < column; i++) {            if(board[row][i] ==  (char) ('1' + k)) return false;        }        for(int i = 0; i < 3; i++) {            row = row / 3 * 3 + i;            for(int j = 0; j < 3; j++) {                column = column * 3 / 3 + j;                if(board[row][column] ==  (char) ('1' + k)) return false;            }        }        return true;    }

原创粉丝点击