首页 > 编程语言 > 详细

9.bfs+拓扑排序

时间:2020-07-10 14:17:49      阅读:65      评论:0      收藏:0      [点我收藏+]
class Solution {
public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
        int n=0;
        queue<int> s;
        vector<int> h[numCourses],indeg(numCourses);
        for(auto e:prerequisites){
            h[e[0]].push_back(e[1]);
            indeg[e[1]]++;
        }
        for(int i=0;i<numCourses;i++){
            if(indeg[i]==0)s.push(i);
        }
        while(!s.empty()){
            int top=s.front();s.pop(); n++;
            for(int i=0;i<h[top].size();i++){
                int back=h[top][i];
                indeg[back]--;
                if(indeg[back]==0)s.push(back);
            }
        }
        return n==numCourses;     
    }
};

  

9.bfs+拓扑排序

原文:https://www.cnblogs.com/apo2019/p/13278754.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!