Appearance
Topological Sort (BFS / Kahn's Algorithm)
cpp
class Solution {
public:
vector<int> topoSort(int v, vector<vector<int>>& edges) {
vector<vector<int>>adj(v);
vector<int>indegree(v);
for(auto ele:edges){
adj[ele[0]].push_back(ele[1]);
indegree[ele[1]]++;
}
queue<int>q;
for(int i=0;i<v;i++){
if(indegree[i]==0){
q.push(i);
}
}
vector<int>ans;
while(!q.empty()){
int curr = q.front();
q.pop();
for(auto ele:adj[curr]){
indegree[ele]--;
if(indegree[ele]==0){
q.push(ele);
}
}
ans.push_back(curr);
}
return ans;
}
};