Skip to content

Commit 19dedc5

Browse files
committed
feat: add typescript solution to lc problem: No.0207
No.0207.Course Schedule
1 parent 2a91086 commit 19dedc5

File tree

3 files changed

+97
-0
lines changed

3 files changed

+97
-0
lines changed

solution/0200-0299/0207.Course Schedule/README.md

+34
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,40 @@ class Solution {
117117
}
118118
```
119119

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+
120154
### **C++**
121155

122156
```cpp

solution/0200-0299/0207.Course Schedule/README_EN.md

+34
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,40 @@ class Solution {
107107
}
108108
```
109109

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+
110144
### **C++**
111145

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

0 commit comments

Comments
 (0)