题解 | 数独

数独

https://www.nowcoder.com/practice/5e6c424b82224b85b64f28fd85761280

import java.util.*;
public class Solution {
    public void solveSudoku(char[][] board) {
        backstrack(board);
    }
    private boolean backstrack(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(isVaild(board,i,j,c)){
                        board[i][j] = c;
                        
                        if(backstrack(board)){
                        return true;
                        }
                        board[i][j] = '.';
                    }
                    }
                    return false;
                }
            }
        }
        return true;
    }
    private boolean isVaild(char[][] board,int row,int col,char c){
        for(int i = 0;i<9;i++){
            if(board[i][col] == c) return false;
            if(board[row][i] == c) return false;

            if (board[3 * (row / 3) + i / 3][3 * (col / 3) + i % 3] == c)
            return false;
    }
    return true;
}
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务