Leetcode210
题目分析:与207题类似
在入度为0的点压入队列时,将此点放在答案队列中即可
class Solution {
public:
vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {
vector<int> ret;
vector<int> indegree(numCourses, 0);
vector<vector<int>> to(numCourses);
for(vector<int> vec: prerequisites){
indegree[vec[0]]++;
to[vec[1]].push_back(vec[0]);
}
queue<int> que;
for(int i = 0; i < numCourses; i++){
if(indegree[i] == 0){
cout << "0 : push[" << i << "]" << endl;
que.push(i);
ret.push_back(i);
}
}
while(!que.empty()){
int t = que.front();
que.pop();
for(int a : to[t]){
indegree[a]--;
if(indegree[a] == 0){
cout << "1 : push[" << a << "]" << endl;
que.push(a);
ret.push_back(a);
}
}
}
if(ret.size() != numCourses) ret.clear();
return ret;
}
};