@@ -47,27 +47,20 @@ const solveSudoku = function(board) {
47
47
} ;
48
48
49
49
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 ] = '.'
65
59
}
66
60
}
67
- return true
61
+ return false
68
62
}
69
63
70
-
71
64
function valid ( board , row , col , ch ) {
72
65
const blkRow = ~ ~ ( row / 3 ) , blkCol = ~ ~ ( col / 3 )
73
66
for ( let i = 0 ; i < 9 ; i ++ ) {
0 commit comments