Skip to content

Commit 1d6d10a

Browse files
authored
Update 1462-course-schedule-iv.js
1 parent e6a5423 commit 1d6d10a

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

1462-course-schedule-iv.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,41 @@ const checkIfPrerequisite = function (numCourses, prerequisites, queries) {
4545
for (let q of queries) res.push(connected[q[0]][q[1]])
4646
return res
4747
}
48+
49+
// another
50+
51+
/**
52+
* @param {number} numCourses
53+
* @param {number[][]} prerequisites
54+
* @param {number[][]} queries
55+
* @return {boolean[]}
56+
*/
57+
const checkIfPrerequisite = function (numCourses, prerequisites, queries) {
58+
const graph = {},
59+
connected = Array.from({ length: numCourses }, () =>
60+
Array(numCourses).fill(-1)
61+
)
62+
for (const [u, v] of prerequisites) {
63+
if (graph[u] == null) graph[u] = []
64+
graph[u].push(v)
65+
connected[u][v] = 1
66+
}
67+
68+
const res = []
69+
for (const [u, v] of queries) res.push(dfs(u, v))
70+
71+
return res
72+
73+
function dfs(u, v) {
74+
if (connected[u][v] !== -1) return connected[u][v]
75+
let res = false
76+
for (const next of graph[u] || []) {
77+
if (!res) {
78+
res ||= dfs(next, v)
79+
} else break
80+
}
81+
connected[u][v] = res
82+
return res
83+
}
84+
}
85+

0 commit comments

Comments
 (0)