Skip to content

Commit 1dd9b3d

Browse files
authored
Update 37-sudoku-solver.js
1 parent ad69750 commit 1dd9b3d

File tree

1 file changed

+10
-17
lines changed

1 file changed

+10
-17
lines changed

37-sudoku-solver.js

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -47,27 +47,20 @@ const solveSudoku = function(board) {
4747
};
4848

4949
function helper(board, row, col) {
50-
for(let i = row, m = board.length; i < m; i++, col = 0) {
51-
for(let j = col, n = board[0].length; j < n; j++) {
52-
if(board[i][j] !== '.') continue
53-
for(let k = 1; k <= 9; k++) {
54-
const ch = `${k}`
55-
const res = valid(board, i, j, ch)
56-
if(res) {
57-
board[i][j] = ch
58-
if(helper(board, i, j + 1)) return true
59-
else {
60-
board[i][j] = '.'
61-
}
62-
}
63-
}
64-
return false
50+
if(row >= 9) return true
51+
if(col >= 9) return helper(board, row + 1, 0)
52+
if(board[row][col] !== '.') return helper(board, row, col + 1)
53+
for(let i = 1; i <= 9; i++) {
54+
const ch = `${i}`
55+
if(valid(board, row, col, ch)) {
56+
board[row][col] = ch
57+
if(helper(board, row, col + 1)) return true
58+
board[row][col] = '.'
6559
}
6660
}
67-
return true
61+
return false
6862
}
6963

70-
7164
function valid(board, row, col, ch) {
7265
const blkRow = ~~(row / 3), blkCol = ~~(col / 3)
7366
for(let i = 0; i < 9; i++) {

0 commit comments

Comments
 (0)