leetcode 日经贴,Cpp code -Course Schedule II

来源:互联网 发布:中国撤侨哭了警戒知乎 编辑:程序博客网 时间:2024/06/13 03:06

Course Schedule II

class Solution {public:    vector<int> findOrder(int numCourses, vector<pair<int, int>>& prerequisites) {        vector<int> inorder;        vector<vector<int> > edge;        inorder.resize(numCourses);        edge.resize(numCourses);        for (int i = 0; i < prerequisites.size(); ++i) {            pair<int, int> pa = prerequisites[i];            inorder[pa.first]++;            edge[pa.second].push_back(pa.first);        }        queue<int> q;        vector<int> validseq;        for (int i = 0; i < numCourses; ++i) {            if (inorder[i] == 0) {                q.push(i);            }        }        while (!q.empty()) {            int u = q.front();            q.pop();            validseq.push_back(u);            for (int i = 0; i < edge[u].size(); ++i) {                if (--inorder[edge[u][i]] == 0) {                    q.push(edge[u][i]);                }            }        }        if (validseq.size() != numCourses) {            validseq.clear();        }        return validseq;    }};


0 0
原创粉丝点击