Skip to content

Commit 1e41ec3

Browse files
authored
Update Course Schedule II.java
1 parent e4260f9 commit 1e41ec3

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

Medium/Course Schedule II.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,30 @@
11
class Solution {
22
public int[] findOrder(int numCourses, int[][] prerequisites) {
3-
Map<Integer, List<Integer>> map = new HashMap<>();
4-
int[] prereqCount = new int[numCourses];
3+
Map<Integer, List<Integer>> prerequisiteToCourseDependency = new HashMap<>();
4+
int[] prerequisiteCount = new int[numCourses];
55
for (int[] prerequisite : prerequisites) {
6-
prereqCount[prerequisite[0]]++;
7-
map.computeIfAbsent(prerequisite[1], k -> new ArrayList<>()).add(prerequisite[0]);
6+
prerequisiteToCourseDependency.computeIfAbsent(prerequisite[1], k -> new ArrayList<>())
7+
.add(prerequisite[0]);
8+
prerequisiteCount[prerequisite[0]]++;
89
}
910
Queue<Integer> queue = new LinkedList<>();
1011
for (int i = 0; i < numCourses; i++) {
11-
if (prereqCount[i] == 0) {
12+
if (prerequisiteCount[i] == 0) {
1213
queue.add(i);
1314
}
1415
}
15-
int[] ans = new int[numCourses];
16-
int idx = 0;
16+
int[] courseOrder = new int[numCourses];
17+
int courseOrderIdx = 0;
1718
while (!queue.isEmpty()) {
18-
int removed = queue.remove();
19-
for (Integer dependentCourse : map.getOrDefault(removed, new ArrayList<>())) {
20-
prereqCount[dependentCourse]--;
21-
if (prereqCount[dependentCourse] == 0) {
19+
int course = queue.remove();
20+
courseOrder[courseOrderIdx++] = course;
21+
for (Integer dependentCourse : prerequisiteToCourseDependency.getOrDefault(course, new ArrayList<>())) {
22+
prerequisiteCount[dependentCourse]--;
23+
if (prerequisiteCount[dependentCourse] == 0) {
2224
queue.add(dependentCourse);
2325
}
2426
}
25-
ans[idx++] = removed;
2627
}
27-
return idx == numCourses ? ans : new int[]{};
28+
return courseOrderIdx == numCourses ? courseOrder : new int[]{};
2829
}
2930
}

0 commit comments

Comments
 (0)