Skip to content

Commit 0243cdd

Browse files
authored
Update 1136-parallel-courses.js
1 parent 65b3b74 commit 0243cdd

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

1136-parallel-courses.js

+47
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,50 @@
1+
/**
2+
* @param {number} n
3+
* @param {number[][]} relations
4+
* @return {number}
5+
*/
6+
const minimumSemesters = function (n, relations) {
7+
const inDegree = Array(n + 1).fill(0)
8+
const graph = {}
9+
for(const [prev, nxt] of relations) {
10+
if(graph[prev] == null) graph[prev] = []
11+
graph[prev].push(nxt)
12+
13+
inDegree[nxt]++
14+
}
15+
16+
let q = []
17+
for(let i = 1; i <= n; i++) {
18+
if(inDegree[i] === 0) q.push(i)
19+
}
20+
21+
// console.log(inDegree)
22+
let res = 0, cnt = 0
23+
while(q.length) {
24+
const size = q.length, nxt = []
25+
26+
for(let i = 0; i < size; i++) {
27+
const cur = q[i]
28+
for(const e of (graph[cur] || [])) {
29+
inDegree[e]--
30+
if(inDegree[e] === 0) {
31+
nxt.push(e)
32+
}
33+
}
34+
}
35+
res++
36+
cnt += size
37+
q = nxt
38+
// console.log(nxt)
39+
}
40+
// console.log(cnt, res)
41+
42+
return cnt === n ? res : -1
43+
}
44+
45+
46+
// another
47+
148
/**
249
* @param {number} N
350
* @param {number[][]} relations

0 commit comments

Comments
 (0)