File tree 1 file changed +15
-15
lines changed
1 file changed +15
-15
lines changed Original file line number Diff line number Diff line change 5
5
var snakesAndLadders = function ( board ) {
6
6
let n = board . length ;
7
7
let set = new Set ( ) ;
8
- let getPos = ( pos ) => {
9
- let row = Math . floor ( ( pos - 1 ) / n )
10
- let col = ( pos - 1 ) % n
8
+ let getPos = ( pos ) => {
9
+ let row = Math . floor ( ( pos - 1 ) / n )
10
+ let col = ( pos - 1 ) % n
11
11
col = row % 2 == 1 ? n - 1 - col : col ;
12
12
row = n - 1 - row ;
13
- return [ row , col ]
13
+ return [ row , col ]
14
14
}
15
- let q = [ [ 1 , 0 ] ]
16
- while ( q . length > 0 ) {
17
- [ pos , moves ] = q . shift ( ) ;
18
- for ( let i = 1 ; i < 7 ; i ++ ) {
19
- let newPos = i + pos ;
20
- let [ r , c ] = getPos ( newPos ) ;
21
- if ( board [ r ] [ c ] != - 1 ) newPos = board [ r ] [ c ]
22
- if ( newPos == n * n ) return moves + 1 ;
23
- if ( ! set . has ( newPos ) ) {
15
+ let q = [ [ 1 , 0 ] ]
16
+ while ( q . length > 0 ) {
17
+ [ pos , moves ] = q . shift ( ) ;
18
+ for ( let i = 1 ; i < 7 ; i ++ ) {
19
+ let newPos = i + pos ;
20
+ let [ r , c ] = getPos ( newPos ) ;
21
+ if ( board [ r ] [ c ] != - 1 ) newPos = board [ r ] [ c ]
22
+ if ( newPos == n * n ) return moves + 1 ;
23
+ if ( ! set . has ( newPos ) ) {
24
24
set . add ( newPos )
25
- q . push ( [ newPos , moves + 1 ] )
25
+ q . push ( [ newPos , moves + 1 ] )
26
26
}
27
27
}
28
28
}
29
29
return - 1
30
- } ;
30
+ } ;
You can’t perform that action at this time.
0 commit comments