题目:![在这里插入图片描述](https://img-blog.csdnimg.cn/20200521114336543.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjMzODY3Mg==,size_16,color_FFFFFF,t_70)
解题代码:
class Solution {
public:
vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites)
{
vector<int> inDegree(numCourses,0);
vector<vector<int>> lst(numCourses,vector<int>());
for(auto v:prerequisites)
{
inDegree[v[0]]++;
lst[v[1]].push_back(v[0]);
}
queue<int> que;
for(auto i=0;i<inDegree.size();i++)
{
if(inDegree[i]==0)
{que.push(i);}
}
vector<int> ans;
while (!que.empty())
{
auto q=que.front();
que.pop();
ans.push_back(q);
for(auto l:lst[q])
{
if(--inDegree[l]==0)
{que.push(l);}
}
}
return(ans.size()==numCourses)?ans:vector<int>();
}
};
结果:![在这里插入图片描述](https://img-blog.csdnimg.cn/20200521120705296.png)