题目链接
思路
代码
class Solution {
public boolean canFinish(int numCourses, int[][] prerequisites) {
int[] indegrees = new int[numCourses];
List<List<Integer>> adjacency = new ArrayList<>();
Queue<Integer> queue = new LinkedList<>();
for(int i = 0; i < numCourses; i++){
adjacency.add(new ArrayList<>());
}
// Get the indegree and adjacency of every course.
for(int[] cp : prerequisites){
indegrees[cp[0]]++;
adjacency.get(cp[1]).add(cp[0]);
}
// Get all the courses with the indegree of 0.
for(int i = 0; i < numCourses; i++){
if(indegrees[i] == 0){
queue.add(i);
}
}
while(!queue.isEmpty()){
int pre = queue.poll();
numCourses--;
for(int cur : adjacency.get(pre)){
if(--indegrees[cur] == 0){
queue.add(cur);
}
}
}
return numCourses == 0;
}
}
标签:207,int,adjacency,numCourses,queue,课程表,indegrees,cp,LeetCode
From: https://www.cnblogs.com/shixuanliu/p/17056164.html