File tree 3 files changed +94
-0
lines changed
solution/0200-0299/0210.Course Schedule II
3 files changed +94
-0
lines changed Original file line number Diff line number Diff line change @@ -119,6 +119,39 @@ class Solution {
119
119
}
120
120
```
121
121
122
+ ### ** TypeScript**
123
+
124
+ ``` ts
125
+ function findOrder(numCourses : number , prerequisites : number [][]): number [] {
126
+ let edges = Array .from ({ length: numCourses }, () => ([]));
127
+ let indeg = new Array (numCourses ).fill (0 );
128
+ for (let [b, a] of prerequisites ) {
129
+ edges [a ].push (b );
130
+ indeg [b ] += 1 ;
131
+ }
132
+
133
+ let queue = [];
134
+ for (let i = 0 ; i < numCourses ; i ++ ) {
135
+ if (! indeg [i ]) {
136
+ queue .push (i );
137
+ }
138
+ }
139
+
140
+ let ans = [];
141
+ while (queue .length ) {
142
+ const u = queue .shift ();
143
+ ans .push (u );
144
+ for (let v of edges [u ]) {
145
+ indeg [v ] -= 1 ;
146
+ if (! indeg [v ]) {
147
+ queue .push (v );
148
+ }
149
+ }
150
+ }
151
+ return ans .length == numCourses ? ans : [];
152
+ };
153
+ ```
154
+
122
155
### ** C++**
123
156
124
157
``` cpp
Original file line number Diff line number Diff line change @@ -115,6 +115,39 @@ class Solution {
115
115
}
116
116
```
117
117
118
+ ### ** TypeScript**
119
+
120
+ ``` ts
121
+ function findOrder(numCourses : number , prerequisites : number [][]): number [] {
122
+ let edges = Array .from ({ length: numCourses }, () => ([]));
123
+ let indeg = new Array (numCourses ).fill (0 );
124
+ for (let [b, a] of prerequisites ) {
125
+ edges [a ].push (b );
126
+ indeg [b ] += 1 ;
127
+ }
128
+
129
+ let queue = [];
130
+ for (let i = 0 ; i < numCourses ; i ++ ) {
131
+ if (! indeg [i ]) {
132
+ queue .push (i );
133
+ }
134
+ }
135
+
136
+ let ans = [];
137
+ while (queue .length ) {
138
+ const u = queue .shift ();
139
+ ans .push (u );
140
+ for (let v of edges [u ]) {
141
+ indeg [v ] -= 1 ;
142
+ if (! indeg [v ]) {
143
+ queue .push (v );
144
+ }
145
+ }
146
+ }
147
+ return ans .length == numCourses ? ans : [];
148
+ };
149
+ ```
150
+
118
151
### ** C++**
119
152
120
153
``` cpp
Original file line number Diff line number Diff line change
1
+ function findOrder ( numCourses : number , prerequisites : number [ ] [ ] ) : number [ ] {
2
+ let edges = Array . from ( { length : numCourses } , ( ) => ( [ ] ) ) ;
3
+ let indeg = new Array ( numCourses ) . fill ( 0 ) ;
4
+ for ( let [ b , a ] of prerequisites ) {
5
+ edges [ a ] . push ( b ) ;
6
+ indeg [ b ] += 1 ;
7
+ }
8
+
9
+ let queue = [ ] ;
10
+ for ( let i = 0 ; i < numCourses ; i ++ ) {
11
+ if ( ! indeg [ i ] ) {
12
+ queue . push ( i ) ;
13
+ }
14
+ }
15
+
16
+ let ans = [ ] ;
17
+ while ( queue . length ) {
18
+ const u = queue . shift ( ) ;
19
+ ans . push ( u ) ;
20
+ for ( let v of edges [ u ] ) {
21
+ indeg [ v ] -= 1 ;
22
+ if ( ! indeg [ v ] ) {
23
+ queue . push ( v ) ;
24
+ }
25
+ }
26
+ }
27
+ return ans . length == numCourses ? ans : [ ] ;
28
+ } ;
You can’t perform that action at this time.
0 commit comments