Topological Sort (DFS)
JavaScript
medium
35 mins
Given a directed acyclic graph (DAG) with n vertices and adjacency list adj, return any topological ordering of the vertices.
Examples
Input: n = 3, adj = [[1], [2], []] Output: [0, 1, 2] Explanation: 0 -> 1 -> 2, so ordering is 0, 1, 2
Input: n = 4, adj = [[1, 2], [3], [3], []] Output: [0, 2, 1, 3] or [0, 1, 2, 3] Explanation: 0 must come before 1 and 2, both 1 and 2 must come before 3
Input: n = 1, adj = [[]] Output: [0] Explanation: Single node graph
Constraints
- 1 ≤ n ≤ 10^4
- 0 ≤ adj[i].length ≤ n - 1
- The graph is a directed acyclic graph (DAG)
- There are no self-loops or multiple edges
Function Signature
function topologicalSort(n, adj) { // Your code here }
Test Cases
- Basic cases: n=3, adj=[[1],[2],[]], n=4, adj=[[1,2],[3],[3],[]]
- Single node: n=1, adj=[[]]
- Disconnected graph: n=4, adj=[[1],[],[3],[]]
- Complex graph: n=4, adj=[[1,2],[3],[3],[]]
- Empty graph: n=3, adj=[[],[],[]]
Companies:
google
meta
amazon
Atlassian
uber
Solve Similar questions 🔥
Want to upskill? Explore our courses!
Namaste DSA
Master DSA from scratch with numerous problems, and expert guidance.
Namaste React
Wanna dive deep into React and become Frontend Expert? Learn with me now!
Namaste Frontend System Design
The most comprehensive and detailed course for frontend system design.
Namaste Node.js
Wanna dive deep into Node.js? Enroll into `Namaste Node.js` now!
