課程表 II
和課程表題目幾乎一樣。
class Solution {
public:
vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {
vector<vector<int>> graph(numCourses+1);
vector<int> f(numCourses+1,0);
for(auto& e:prerequisites){
graph[e[1]].push_back(e[0]);
f[e[a0]]++;
}
queue<int> q;
vector<int> ans;
for(int i=0;i<numCourses;i++){
if(!f[i]){
q.push(i);
}
}
while(!q.empty()){
int x = q.front();
q.pop();
ans.push_back(x);
for(int y:graph[x]){
if(--f[y]==0){
q.push(y);
}
}
}
return ans.size()==numCourses?ans:vector<int>{};
}
};