一样的思路嘛
class Solution {
public:
vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {
vector<vector<int>>edge(numCourses,vector<int>());
vector<int>indegree(numCourses,0);
vector<int>ans;
for(auto it : prerequisites)
{
edge[it[1]].push_back(it[0]);
indegree[it[0]]++;
}
queue<int>q;
for(int i = 0;i<numCourses;i++)
{
if(indegree[i] == 0) q.push(i);
}
int count = 0;
while(!q.empty())
{
int v = q.front();
q.pop();
ans.push_back(v);
count++;
for(auto it : edge[v])
{
indegree[it]--;
if(indegree[it] == 0) q.push(it);
}
}
if(count == numCourses) return ans;
ans.clear();
return ans;
}
};