1462. Kursplan IV
Schwierigkeit:Mittel
Themen: Tiefensuche, Breitensuche, Diagramm, Topologische Sortierung
Es gibt insgesamt numCourses-Kurse, die Sie absolvieren müssen, beschriftet von 0 bis numCourses - 1. Sie erhalten eine Reihe von Voraussetzungen, wobei Voraussetzungen[i] = [ai, bi ] zeigt an, dass Sie den Kurs belegen müssen ai zuerst, wenn Sie Kurs bi belegen möchten.
Voraussetzungen können auch indirekter sein. Wenn Kurs A eine Voraussetzung für Kurs B und Kurs B eine Voraussetzung für Kurs C ist, dann ist Kurs A eine Voraussetzung für Kurs C.
Sie erhalten außerdem ein Array-Abfragen, wobei query[j] = [uj, vj]. Für die jte Abfrage sollten Sie antworten, ob Kurs uj eine Voraussetzung für Kurs vj ist oder nicht.
Gibt eine boolesche Array-Antwort zurück, wobei Antwort[j] die Antwort auf die jteAbfrage ist.
Beispiel 1:
Beispiel 2:
Beispiel 3:
Einschränkungen:
Hinweis:
Lösung:
Wir können eine Grafikdarstellung und den Floyd-Warshall-Algorithmus verwenden, um zu berechnen, ob jeder Kurs von einem anderen Kurs aus erreichbar ist. Dieser Ansatz wird die erforderlichen Beziehungen effizient handhaben und es uns ermöglichen, die Fragen direkt zu beantworten.
Lassen Sie uns diese Lösung in PHP implementieren: 1462. Kursplan IV
<?php /** * @param Integer $numCourses * @param Integer[][] $prerequisites * @param Integer[][] $queries * @return Boolean[] */ function checkIfPrerequisite($numCourses, $prerequisites, $queries) { ... ... ... /** * go to ./solution.php */ } // Example usage: $numCourses = 2; $prerequisites = [[1,0]]; $queries = [[0,1],[1,0]]; $result = checkIfPrerequisite($numCourses, $prerequisites, $queries); print_r($result); // Output: [false,true] $numCourses = 2; $prerequisites = []; $queries = [[1,0],[0,1]] $result = checkIfPrerequisite($numCourses, $prerequisites, $queries); print_r($result); // Output: [false,false] $numCourses = 3; $prerequisites = [[1, 2], [1, 0], [2, 0]]; $queries = [[1, 0], [1, 2]]; $result = checkIfPrerequisite($numCourses, $prerequisites, $queries); print_r($result); // Output: [true, true] ?>
Diagramminitialisierung:
Direkte Voraussetzungen:
Floyd-Warshall-Algorithmus:
Abfrageauswertung:
$numCourses = 3; $prerequisites = [[1, 2], [1, 0], [2, 0]]; $queries = [[1, 0], [1, 2]];
$isReachable = [ [false, false, false], [false, false, true], [false, false, false] ];
$isReachable = [ [false, false, false], [true, false, true], [true, false, false] ];
[true, true]
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonKursplan IV. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!