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