Skip to content

Commit b167142

Browse files
authored
Create 802-find-eventual-safe-states.js
1 parent 4b7fd93 commit b167142

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

802-find-eventual-safe-states.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* @param {number[][]} graph
3+
* @return {number[]}
4+
*/
5+
const eventualSafeNodes = function(graph) {
6+
const n = graph.length, memo = {}, visited = new Set(), res = []
7+
for(let i = 0; i < n; i++) {
8+
if(!dfs(graph, i, memo, visited)) res.push(i)
9+
}
10+
return res
11+
};
12+
13+
function dfs(graph, node, memo, visited) {
14+
if(memo[node] != null) return memo[node]
15+
let hasCycle = false
16+
visited.add(node)
17+
for(let e of graph[node]) {
18+
if(visited.has(e) || dfs(graph, e, memo, visited)) {
19+
hasCycle = true
20+
break
21+
}
22+
}
23+
visited.delete(node)
24+
memo[node] = hasCycle
25+
return hasCycle
26+
}

0 commit comments

Comments
 (0)