Java Backtracking Algorithms: Sudoku, Knapsack, and Tasks
Classified in Computers
Written on in
English with a size of 2.25 KB
Sudoku Solver Implementation
private boolean isValid(int r, int c, int n) {
boolean valid = true;
int sr, sc, fr, fc;
for (int i = 0; i < 9 && valid; i++) {
if (i != r) if (grid[i][c] == n) valid = false;
if (i != c) if (grid[r][i] == n) valid = false;
}
if (valid) {
sr = (r / 3) * 3; fr = sr + 3; sc = (c / 3) * 3; fc = sc + 3;
for (int i = sr; i < fr && valid; i++) {
for (int j = sc; j < fc && valid; j++) {
if (grid[i][j] == n) valid = false;
}
}
}
return valid;
}
private boolean solveRec(int row, int col) {
boolean solved = false;
if (row == 9) solved = true;
else {
if (grid[row][col] == 0) {
for (int i = 1; i < 10; i++) {
if... Continue reading "Java Backtracking Algorithms: Sudoku, Knapsack, and Tasks" »