思路
与210. 课程表 II类似,少了答案存储空间
代码
class Solution {
public:
bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
//建图
vector<vector<int>> edge(numCourses);
vector<int>indu(numCourses,0);
for(auto &p:prerequisites){
edge[p[1]].emplace_back(p[0]);
++indu[p[0]];
}
//入度为0的结点入队
queue<int> Q;
for(int i=0;i<numCourses;++i)
if(indu[i]==0)
Q.push(i);
//广度优先搜索
int count=0;
while(!Q.empty()){
int curi=Q.front();Q.pop();++count;
for(int ljnode:edge[curi]){
--indu[ljnode];
if(indu[ljnode]==0)
Q.push(ljnode);
}
}
return count==numCourses? true:false;
}
};