Skip to content

Commit f3a22e2

Browse files
refactor 210
1 parent 7c9cbf0 commit f3a22e2

File tree

1 file changed

+0
-60
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+0
-60
lines changed
Lines changed: 0 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +0,0 @@
1-
package com.fishercoder.solutions;
2-
3-
import java.util.HashSet;
4-
import java.util.Iterator;
5-
import java.util.LinkedList;
6-
import java.util.Queue;
7-
import java.util.Set;
8-
9-
public class _210 {
10-
11-
public static class Solution1 {
12-
public int[] findOrder(int numCourses, int[][] prerequisites) {
13-
int[] inDegree = new int[numCourses];
14-
for (int[] course : prerequisites) {
15-
inDegree[course[0]]++;
16-
}
17-
18-
Set<Integer> zeroDegree = new HashSet();
19-
Queue<Integer> queue = new LinkedList();
20-
for (int i = 0; i < numCourses; i++) {
21-
if (inDegree[i] == 0) {
22-
zeroDegree.add(i);
23-
queue.offer(i);
24-
}
25-
}
26-
27-
if (zeroDegree.isEmpty()) {
28-
return new int[0];
29-
}
30-
31-
while (!zeroDegree.isEmpty()) {
32-
Iterator<Integer> it = zeroDegree.iterator();
33-
int course = it.next();
34-
zeroDegree.remove(course);
35-
for (int[] pre : prerequisites) {
36-
if (course == pre[1]) {
37-
inDegree[pre[0]]--;
38-
if (inDegree[pre[0]] == 0) {
39-
zeroDegree.add(pre[0]);
40-
queue.offer(pre[0]);
41-
}
42-
}
43-
}
44-
}
45-
46-
for (int i = 0; i < numCourses; i++) {
47-
if (inDegree[i] != 0) {
48-
return new int[0];
49-
}
50-
}
51-
52-
int[] result = new int[queue.size()];
53-
int i = 0;
54-
while (!queue.isEmpty()) {
55-
result[i++] = queue.poll();
56-
}
57-
return result;
58-
}
59-
}
60-
}

0 commit comments

Comments
 (0)