File tree Expand file tree Collapse file tree 1 file changed +0
-60
lines changed
src/main/java/com/fishercoder/solutions Expand file tree Collapse file tree 1 file changed +0
-60
lines changed Original file line number Diff line number Diff line change 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
- }
You can’t perform that action at this time.
0 commit comments