class Solution {
public:
vector<int> findOrder(int numCourses, vector<pair<int, int>>& prerequisites) {
vector<int> indegree(numCourses,0),res;
vector<vector<int>> v(numCourses);
for(auto &x:prerequisites){
indegree[x.first]++;
v[x.second].push_back(x.first);
}
queue<int> q;
for(int i=0;i<numCourses;++i){
if(indegree[i]==0) q.push(i);
}
while(!q.empty()){
int w=q.front();
q.pop();
res.push_back(w);
for(int u:v[w]){
indegree[u]--;
if(indegree[u]==0) q.push(u);
}
}
if(res.size()!=numCourses) res.clear();
return res;
}
};
210. 课程表 II
最新推荐文章于 2022-04-13 09:52:05 发布