Skip to content

Latest commit

 

History

History
 
 

Program's_Contributed_By_Contributors

Thank you for this repo :) Please contribute any program here.

// SUDOKU SOLVER //

class Solution { public: bool issafe(vector<vector> &bd, int i, int j, char ch) { for (int k = 0; k < 9; k++) { if (bd[k][j] == ch) return 0; } for (int k = 0; k < 9; k++) { if (bd[i][k] == ch) return 0; }

int r = i - i % 3;
int c = j - j % 3;
for (int x = 0; x < 3; x++)
{
    for (int y = 0; y < 3; y++)
    {
        if (bd[r + x][c + y] == ch)
            return 0;
    }
}

return 1;

}

bool sl(vector<vector> &bd, int i, int j) { if (i == 9) return 1; if (j == 9) { return sl(bd, i + 1, 0); } if (bd[i][j] != '.') { return sl(bd, i, j + 1); }

for (char ch = '1'; ch <= '9'; ch++)
{
    if (issafe(bd, i, j, ch))
    {
        bd[i][j] = ch;
        if (sl(bd, i, j + 1))
            return 1;
        bd[i][j] = '.';
    }
}
return 0;

}

void solveSudoku(vector<vector> &bd) { sl(bd, 0, 0); } };