Back to course home
0% completed
Vote For New Content
Find Eventual Safe States (medium)
Problem Statement
You are given a directed graph with n
nodes, labeled from 0
to n-1
. This graph is described by a 2D integer array graph
, where graph[i]
is an array of nodes adjacent to node i
, indicating there is a directed edge from node i
to each of the nodes in graph[i]
.
A node is called a terminal node
if it has no outgoing edges. A node is considered safe
if every path starting from that node leads to a terminal node (or another safe node).
Return an array of all safe nodes in ascending order.
Examples
Example 1:
- Input: graph =
[[1,2],[2,3],[2],[],[5],[6],[]]
- Expected Output:
[3,4,5,6]
- Explanation:
- Node
3
is a terminal node. - Node
4
leads to node5
, which is a safe node. - Node
5
leads to node6
, which is a terminal node. - Node
6
is a terminal node.
- Node
Example 2:
- Input: graph =
[[1,2],[2,3],[5],[0],[],[],[4]]
- Expected Output:
[2,4,5,6]
- Explanation:
- Node
2
leads to node5
, which is a terminal node. - Node
4
is a terminal node. - Node
5
is a terminal node. - Node
6
leads to node4
, which is a terminal node.
- Node
Example 3:
- Input: graph =
[[1,2,3],[2,3],[3],[],[0,1,2]]
- Expected Output:
[0,1,2,3,4]
- Explanation:
- Node
3
is a terminal node. - Node
2
leads to node3
, which is a terminal node. - Node
1
leads to node2
, which is a safe node, and node3
, which is a terminal node. - Similarly, all node leads to either a terminal or a safe node.
- Node
Constraints:
- n == graph.length
- 1 <= n <= 104
- 0 <= graph[i].length <= n
- 0 <= graph[i][j] <= n - 1
- graph[i] is sorted in a strictly increasing order.
- The graph may contain self-loops.
- The number of edges in the graph will be in the range [1, 4 * 10<sup>4</sup>].
Try it yourself
Try solving this question here:
Python3
Python3
. . . .
.....
.....
.....
Like the course? Get enrolled and start learning!
On this page
Problem Statement
Examples
Try it yourself