Skip to content

Commit 235dac1

Browse files
committedDec 30, 2021
feat: add typescript solution to lc problem: No.0210
No.0210.Course Schedule II
1 parent f4dbfeb commit 235dac1

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed
 

‎solution/0200-0299/0210.Course Schedule II/README.md

+33
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,39 @@ class Solution {
119119
}
120120
```
121121

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+
122155
### **C++**
123156

124157
```cpp

‎solution/0200-0299/0210.Course Schedule II/README_EN.md

+33
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,39 @@ class Solution {
115115
}
116116
```
117117

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+
118151
### **C++**
119152

120153
```cpp
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
};

0 commit comments

Comments
 (0)