Sudoku
function isValid(board, row, col, num) {
num = String(num);
for (let i = 0; i < board.length; i++) {
if (board[i][col] === num) {
return false;
}
if (board[row][i] === num) {
return false;
}
let rowSection = 3 * Math.floor(row / 3);
let colSection = 3 * Math.floor(col / 3);
if (board[rowSection + Math.floor(i / 3)][colSection + (i % 3)] === num) {
return false;
}
}
return true;
}
function solve(board) {
for (let i = 0; i < board.length; i++) {
for (let j = 0; j < board[0].length; j++) {
if (board[i][j] === ".") {
for (let num = 1; num <= 9; num++) {
if (isValid(board, i, j, num)) {
board[i][j] = String(num);
if (solve(board)) {
return true;
} else {
board[i][j] = ".";
}
}
}
return false;
}
}
}
return true;
}
var solveSudoku = function (board) {
solve(board);
};