美文网首页
sudoku-solver

sudoku-solver

作者: DaiMorph | 来源:发表于2019-07-17 23:15 被阅读0次
class Solution {
public:
    void solveSudoku(vector<vector<char> > &board) {
        if(board.size()==0)return;
        solve(board);
    }
    bool solve(vector<vector<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;
    }
    bool isValid(vector<vector<char>>board,int row,int col,char c)
    {
        for(int i=0;i<9;i++)
        {
            if(board[row][i]==c||board[i][col]==c)return false;
        }
        int xbegin=(row/3)*3,ybegin=(col/3)*3;
        for(int i=xbegin;i<xbegin+3;i++)
        {
            for(int j=ybegin;j<ybegin+3;j++)
            {
                if(board[i][j]==c)return false;
            }
        }
        return true;
    }
};

相关文章

网友评论

      本文标题:sudoku-solver

      本文链接:https://www.haomeiwen.com/subject/duchlctx.html