Skip to content

Commit 4c882a0

Browse files
added all Valid Sudoku solution file
1 parent f89b459 commit 4c882a0

2 files changed

Lines changed: 40 additions & 1 deletion

File tree

‎Backtracking/SudokuSolver.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,4 @@ let grid = [
107107
['.','.','.','4','1','9','.','.','5'],
108108
['.','.','.','.','8','.','.','7','9']
109109
];
110-
SudokuSolver(grid)
110+
SudokuSolver(grid)

‎Backtracking/ValidSudoku.js‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
2+
function isValidSudoku(board) {
3+
4+
var row = [0, 0, 0, 0, 0, 0, 0, 0, 0];
5+
var col = [0, 0, 0, 0, 0, 0, 0, 0, 0];
6+
var mat = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
7+
8+
for (var i = 0; i < 9; i++) { //all rows set;
9+
for (var j = 0; j < 9; j++) {
10+
if (board[i][j] === '.') continue;
11+
12+
var mask = 1 << (board[i][j]);
13+
if (((row[i] & mask) !== 0) || ((col[j] & mask) !== 0) || ((mat[Math.floor(i / 3)][Math.floor(j / 3)] & mask) !== 0)) return false;
14+
else {
15+
row[i] |= mask;
16+
col[j] |= mask;
17+
mat[Math.floor(i / 3)][Math.floor(j / 3)] |= mask;
18+
}
19+
}
20+
}
21+
22+
return true;
23+
}
24+
25+
// Solve this case
26+
let board = [
27+
['5', '3', '.', '.', '7', '.', '.', '.', '.'],
28+
['6', '.', '.', '1', '9', '5', '.', '.', '.'],
29+
['.', '9', '8', '.', '.', '.', '.', '6', '.'],
30+
['8', '.', '.', '.', '6', '.', '.', '.', '3'],
31+
['4', '.', '.', '8', '.', '3', '.', '.', '1'],
32+
['7', '.', '.', '.', '2', '.', '.', '.', '6'],
33+
['.', '6', '.', '.', '.', '.', '2', '8', '.'],
34+
['.', '.', '.', '4', '1', '9', '.', '.', '5'],
35+
['.', '.', '.', '.', '8', '.', '.', '7', '9']
36+
];
37+
38+
console.log(isValidSudoku(board));
39+

0 commit comments

Comments
 (0)