You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are a total of numCourses courses you have to take, labeled from 0 to numCourses-1.
Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair: [0,1]
Given the total number of courses and a list of prerequisite pairs, is it possible for you to finish all courses?
Example 1:
Input: numCourses = 2, prerequisites = [[1,0]]
Output: true
Explanation: There are a total of 2 courses to take.
To take course 1 you should have finished course 0. So it is possible.
Example 2:
Input: numCourses = 2, prerequisites = [[1,0],[0,1]]
Output: false
Explanation: There are a total of 2 courses to take.
To take course 1 you should have finished course 0, and to take course 0 you should
also have finished course 1. So it is impossible.
Constraints:
The input prerequisites is a graph represented by a list of edges, not adjacency matrices. Read more about how a graph is represented.
You may assume that there are no duplicate edges in the input prerequisites.
1 <= numCourses <= 10^5
DFS
classSolution {
publicbooleancanFinish(intN, int[][] preqs) {
ArrayList[] G = newArrayList[N];
for (inti = 0; i < N; i++) {
G[i] = newArrayList();
}
for (inti = 0; i < preqs.length; i++) {
G[preqs[i][1]].add(preqs[i][0]); // G[1]=[0, 2, ...]把1的先修课加到集合里
}
boolean[] visited = newboolean[N];
for (intcourse_idx = 0; course_idx < N; course_idx++) {
if (!dfs(G, visited, course_idx)) {
returnfalse;
}
}
returntrue;
}
privatebooleandfs(ArrayList[] G, boolean[] visited, intcourse) {
if (visited[course] == true)
returnfalse;
visited[course] = true;
for (inti = 0; i < G[course].size(); i++) {
if (!dfs(G, visited, (int)G[course].get(i)))
returnfalse;
}
visited[course] = false;
returntrue;
}
}
The text was updated successfully, but these errors were encountered:
Description
DFS
The text was updated successfully, but these errors were encountered: