Sudoku Solver

来源:互联网 发布:vscode markdown html 编辑:程序博客网 时间:2024/06/05 14:59
class Solution {public:    void solveSudoku(vector<vector<char> > &board) {         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(int k=1;k<=9;k++)                    {                        board[i][j]='0'+k;                        if(valid(board,i,j)&&solve(board))                           return true;                        board[i][j]='.';                    }                    return false;                }            }          return true;    }    bool valid(vector<vector<char>>&board,int x,int y)    {        int i,j;        for(int i=0;i<9;i++)           if(board[x][i]==board[x][y]&&y!=i)              return false;       for(int j=0;j<9;j++)          if(board[j][y]==board[x][y]&&x!=j)              return false;       int a=x/3*3;       int b=y/3*3;       for(int i=0;i<3;i++)          for(int j=0;j<3;j++)          {              if(a+i!=x&&j+b!=y&&board[i+a][j+b]==board[x][y])                 return false;          }       return true;    }};

0 0
原创粉丝点击