Skip to content

Commit 94fe41d

Browse files
authored
Update 1377-frog-position-after-t-seconds.js
1 parent 25ded14 commit 94fe41d

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

1377-frog-position-after-t-seconds.js

+41
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,44 @@
1+
/**
2+
* @param {number} n
3+
* @param {number[][]} edges
4+
* @param {number} t
5+
* @param {number} target
6+
* @return {number}
7+
*/
8+
const frogPosition = function (n, edges, t, target) {
9+
const m = new Map()
10+
for(let e of edges) {
11+
const [from, to] = e
12+
if(!m.has(from - 1)) m.set(from - 1, [])
13+
if(!m.has(to - 1)) m.set(to - 1, [])
14+
m.get(from - 1).push(to - 1)
15+
m.get(to - 1).push(from - 1)
16+
}
17+
const visited = new Set()
18+
visited.add(0)
19+
const q = [0]
20+
const res = [1]
21+
while(q.length && t-- > 0) {
22+
for(let size = q.length; size > 0 ; size--) {
23+
const u = q.shift()
24+
let count = 0
25+
for(let e of (m.get(u) || [])) {
26+
if(!visited.has(e)) count++
27+
}
28+
for(let e of (m.get(u) || [])) {
29+
if(visited.has(e)) continue
30+
q.push(e)
31+
visited.add(e)
32+
res[e] = res[u] / count
33+
}
34+
if(count > 0) res[u] = 0
35+
}
36+
}
37+
return res[target - 1] || 0
38+
}
39+
40+
// another
41+
142
/**
243
* @param {number} n
344
* @param {number[][]} edges

0 commit comments

Comments
 (0)