class Solution {
public:
bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) {
vector<int> indegree(numCourses,0);
vector<vector<int>> v(numCourses);
for(auto &x:prerequisites){
indegree[x.first]++;
v[x.second].push_back(x.first);
}
queue<int> q;
for(int i=0;i<numCourses;++i){
if(indegree[i]==0) q.push(i);
}
int cnt=0;
while(!q.empty()){
int w=q.front();
q.pop();
++cnt;
for(int u:v[w]){
indegree[u]--;
if(indegree[u]==0) q.push(u);
}
}
return cnt==numCourses;
}
};
207. 课程表
最新推荐文章于 2024-08-03 16:46:32 发布