All Paths From Source to Target - Problem
Given a directed acyclic graph (DAG) of n nodes labeled from 0 to n - 1, find all possible paths from node 0 to node n - 1 and return them in any order.
The graph is given as follows: graph[i] is a list of all nodes you can visit from node i (i.e., there is a directed edge from node i to node graph[i][j]).
Input & Output
Example 1 — Basic DAG
$
Input:
graph = [[1,2],[3],[3],[]]
›
Output:
[[0,1,3],[0,2,3]]
💡 Note:
There are two paths from node 0 to node 3: Path 1 goes 0→1→3, and Path 2 goes 0→2→3. Both paths reach the target node 3.
Example 2 — Single Path
$
Input:
graph = [[4,3,1],[3,2,4],[3],[4],[]]
›
Output:
[[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]
💡 Note:
There are 5 different paths from node 0 to node 4. Each path represents a different route through the DAG to reach the target.
Example 3 — Linear Path
$
Input:
graph = [[1],[2],[]]
›
Output:
[[0,1,2]]
💡 Note:
Only one path exists: 0→1→2. This is a simple linear path from source to target.
Constraints
- n == graph.length
- 2 ≤ n ≤ 15
- 0 ≤ graph[i][j] < n
- graph[i][j] != i (i.e., there will be no self-loops)
- All the elements of graph[i] are unique
- The input graph is guaranteed to be a DAG
Visualization
Tap to expand
Understanding the Visualization
1
Input Graph
DAG with nodes 0 to n-1, adjacency list representation
2
Explore Paths
Use DFS to find all paths from node 0 to node n-1
3
Collect Results
Return all complete paths as list of lists
Key Takeaway
🎯 Key Insight: Use DFS with backtracking to systematically explore all paths while maintaining the current path state
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code