Skip to content

Commit d7428bb

Browse files
committed
add JS solution for problem 909
1 parent 4a57286 commit d7428bb

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ If you would like to have collaborator permissions on the repo to merge your own
331331
<sub>[1466 - Reorder Routes to Make All Paths Lead to The City Zero](https://leetcode.com/problems/reorder-routes-to-make-all-paths-lead-to-the-city-zero/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F1466-reorder-routes-to-make-all-paths-lead-to-the-city-zero.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F1466-Reorder-Routes-to-Make-All-Paths-Lead-To-The-City-Zero.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F1466-reorder-routes-to-make-all-paths-lead-to-the-city-zero.java)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F1466-reorder-routes-to-make-all-paths-lead-to-the-city-zero.kt)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
332332
<sub>[0994 - Rotting Oranges](https://leetcode.com/problems/rotting-oranges/)</sub> | <sub><div align='center'>[✔️](c%2F0994-rotting-oranges.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0994-rotting-oranges.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0994-rotting-oranges.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0994-rotting-oranges.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0994-rotting-oranges.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0994-rotting-oranges.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0994-rotting-oranges.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0994-rotting-oranges.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0994-rotting-oranges.ts)</div></sub>
333333
<sub>[0286 - Walls And Gates](https://leetcode.com/problems/walls-and-gates/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0286-walls-and-gates.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0286-walls-and-gates.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0286-walls-and-gates.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0286-walls-and-gates.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F0286-walls-and-gates.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
334-
<sub>[0909 - Snakes And Ladders](https://leetcode.com/problems/snakes-and-ladders/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](csharp%2F0909-snakes-and-ladders.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0909-snakes-and-ladders.java)</div></sub> | <sub><div align='center'></div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F0909-snakes-and-ladders.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
334+
<sub>[0909 - Snakes And Ladders](https://leetcode.com/problems/snakes-and-ladders/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](csharp%2F0909-snakes-and-ladders.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0909-snakes-and-ladders.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0909-snakes-and-ladders.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F0909-snakes-and-ladders.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
335335
<sub>[0752 - Open The Lock](https://leetcode.com/problems/open-the-lock/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](csharp%2F0752-open-the-lock.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0752-open-the-lock.java)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0752-open-the-lock.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0752-open-the-lock.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
336336
<sub>[0802 - Find Eventual Safe States](https://leetcode.com/problems/find-eventual-safe-states/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0802-find-eventual-safe-states.java)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0802-find-eventual-safe-states.kt)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
337337
<sub>[0207 - Course Schedule](https://leetcode.com/problems/course-schedule/)</sub> | <sub><div align='center'>[✔️](c%2F0207-course-schedule.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0207-course-schedule.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0207-course-schedule.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0207-course-schedule.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0207-course-schedule.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0207-course-schedule.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0207-course-schedule.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0207-course-schedule.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0207-course-schedule.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0207-course-schedule.ts)</div></sub>

Diff for: javascript/0909-snakes-and-ladders.js

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* @param {number[][]} board
3+
* @return {number}
4+
*/
5+
var snakesAndLadders = function(board) {
6+
let n = board.length;
7+
let set = new Set();
8+
let getPos = (pos) =>{
9+
let row = Math.floor((pos-1) / n)
10+
let col = (pos-1) % n
11+
col = row % 2 == 1 ? n - 1 - col : col;
12+
row = n - 1 - row;
13+
return [row,col]
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)){
24+
set.add(newPos)
25+
q.push([newPos,moves+1])
26+
}
27+
}
28+
}
29+
return -1
30+
};

0 commit comments

Comments
 (0)