bool solveSudokudfs(vector<vector<char>> &board){
     for(int i=0;i<board.size();i++){
         for(int j=0;j<board[0].size();j++){
             if(board[i][j]=='.'){
                 for(int k=1;k<=9;k++){
                     board[i][j]='0'+k;
                     if(isValid(board,i,j)&&solveSudokudfs(board)){
                         return true;
                     }
                    board[i][j]='.';
                 }
                 return false;
             }
         }
     }
     return true;
 }
Exemplo n.º 2
0
 bool Ex36::solveSudokudfs(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(isValid(board,i,j) && solveSudokudfs(board))
                         return true;
                     board[i][j] = '.';
                 }
                 
                 return false;
             }
         
     return true;
 }
Exemplo n.º 3
0
 void Ex36::solveSudoku(vector<vector<char> > &board)
 {
     solveSudokudfs(board);
 }
Exemplo n.º 4
0
	void solveSudoku(vector<vector<char> > &board) {
        // Note: The Solution object is instantiated only once.
        solveSudokudfs(board);
    }