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. 课程表 (拓扑排序)的主要内容,如果未能解决你的问题,请参考以下文章