Skip to content

Commit 6a8fe05

Browse files
committed
Time: 83 ms (42.13%), Space: 59.7 MB (57.49%) - LeetHub
1 parent ffe3e12 commit 6a8fe05

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
function checkIfPrerequisite(numCourses, prerequisites, queries) {
2+
let map = new Map();
3+
4+
for (let i = 0; i < prerequisites.length; i++) {
5+
let course = prerequisites[i][0];
6+
let prereq = prerequisites[i][1];
7+
if (!map.has(course)) {
8+
map.set(course, new Set());
9+
}
10+
map.get(course).add(prereq);
11+
}
12+
13+
let reachable = Array.from({ length: numCourses }, () => Array(numCourses).fill(false));
14+
for (let [course, prereqs] of map) {
15+
for (let prereq of prereqs) {
16+
reachable[course][prereq] = true;
17+
}
18+
}
19+
for (let k = 0; k < numCourses; k++) {
20+
for (let i = 0; i < numCourses; i++) {
21+
for (let j = 0; j < numCourses; j++) {
22+
reachable[i][j] = reachable[i][j] || (reachable[i][k] && reachable[k][j]);
23+
}
24+
}
25+
}
26+
27+
let res = [];
28+
for (let i = 0; i < queries.length; i++) {
29+
let course = queries[i][0];
30+
let prereq = queries[i][1];
31+
res.push(reachable[course][prereq]);
32+
}
33+
34+
return res;
35+
}

0 commit comments

Comments
 (0)