cs: add «1462. Course Schedule IV»

URL:	https://leetcode.com/problems/course-schedule-iv/
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2025-01-27 10:59:50 +01:00
parent b9ba3ba6a9
commit daf0a68499
Signed by: mfocko
SSH key fingerprint: SHA256:icm0fIOSJUpy5+1x23sfr+hLtF9UhY8VpMC7H4WFJP8

29
cs/course-schedule-iv.cs Normal file
View file

@ -0,0 +1,29 @@
public class Solution {
public IList<bool> CheckIfPrerequisite(int numCourses, int[][] prerequisites, int[][] queries) {
var isPrerequisite = new bool[numCourses][];
for (var i = 0; i < numCourses; ++i) {
isPrerequisite[i] = new bool[numCourses];
}
foreach (var edge in prerequisites) {
var (u, v) = (edge[0], edge[1]);
isPrerequisite[u][v] = true;
}
for (var v = 0; v < numCourses; ++v) {
for (var u = 0; u < numCourses; ++u) {
for (var w = 0; w < numCourses; ++w) {
isPrerequisite[u][w] = (isPrerequisite[u][w] || (isPrerequisite[u][v] && isPrerequisite[v][w]));
}
}
}
var answer = new List<bool>();
foreach (var query in queries) {
var (u, v) = (query[0], query[1]);
answer.Add(isPrerequisite[u][v]);
}
return answer;
}
}