1462. Course Schedule IV
On This Page
class Solution:
def checkIfPrerequisite(
self, n: int, prerequisites: List[List[int]], queries: List[List[int]]
) -> List[bool]:
f = [[False] * n for _ in range(n)]
g = [[] for _ in range(n)]
indeg = [0] * n
for a, b in prerequisites:
g[a].append(b)
indeg[b] += 1
q = deque(i for i, x in enumerate(indeg) if x == 0)
while q:
i = q.popleft()
for j in g[i]:
f[i][j] = True
for h in range(n):
f[h][j] = f[h][j] or f[h][i]
indeg[j] -= 1
if indeg[j] == 0:
q.append(j)
return [f[a][b] for a, b in queries]