207. 课程表 (拓扑排序)

Posted code_kd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了207. 课程表 (拓扑排序)相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/course-schedule/

解题代码:

class Solution 
public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) 
        vector<vector<int> > edges;
        edges.resize(numCourses);
        queue<int> q;
        int in[100000+5]=0;
        for(int i = 0;i<prerequisites.size();i++)
            edges[prerequisites[i][1]].push_back(prerequisites[i][0]);
            in[prerequisites[i][0]]++;
        
        //int cnt=0;
        for(int i = 0;i<numCourses;i++)
            if(in[i]==0)
                q.push(i);
                //cnt++;
                //break;
            
        
        if(q.empty()) return false;
        int cnt=0;
        while(!q.empty())
            int t = q.front();
            for(int i = 0;i<edges[t].size();i++)
                if(--in[edges[t][i]]==0)
                q.push(edges[t][i]);
            
            q.pop();
            cnt++;
        
        //cout<<cnt<<endl;
        return cnt==numCourses;
    
;

以上是关于207. 课程表 (拓扑排序)的主要内容,如果未能解决你的问题,请参考以下文章

207. 课程表 (拓扑排序)

207. 课程表 (拓扑排序)

207. 课程表 (拓扑排序)

[LeetCode] 207. 课程表(拓扑排序,BFS)

207 Course Schedule 课程表 拓扑排序

Leetcode 207 课程表 (拓扑排序,判断有向图环)