LeetCode 210. 課程表 II (入門題 拓撲排序)

課程表 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>{};
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章