Top 150-InterviewEinfach

Kursplan II

Detaillierte Anleitung und Python-Implementierung für das Problem „Kursplan II“.

Problemstellung

Einfach

Es gibt insgesamt numCourses-Kurse, die Sie absolvieren müssen, beschriftet von 0 bis numCourses - 1. Sie erhalten eine Reihe von Voraussetzungen, wobei „prequires[i] = [ai, bi]“ angibt, dass Sie zuerst Kurs bi belegen müssen, wenn Sie den Kurs ai belegen möchten.

Geben Sie die Reihenfolge der Kurse zurück, die Sie absolvieren sollten, um alle Kurse abzuschließen. Wenn es viele gültige Antworten gibt, geben Sie eine davon zurück. Wenn es nicht möglich ist, alle Kurse zu beenden, geben Sie ein leeres Array zurück.

Schreiben Sie eine Funktion findOrder(numCourses: int, prerequisites: List[List[int]]) -> List[int].

Einschränkungen
  • 1 <= numCourses <= 2000
  • 0 <= len(prerequisites) <= 5000
  • prerequisites[i].length == 2
  • 0 <= ai, bi < numCourses

Beispiele

Example 1
Input
numCourses = 2, prerequisites = [[1,0]]
Output
[0,1]
Explanation

There are a total of 2 courses to take. To take course 1 you should have finished course 0. So the correct course order is [0,1].

Example 2
Input
numCourses = 4, prerequisites = [[1,0],[2,0],[3,1],[3,2]]
Output
[0,2,1,3]
Explanation

There are a total of 4 courses to take. To take course 3 you should have finished both courses 1 and 2. Both courses 1 and 2 should be taken after you finished course 0. So one correct course order is [0,1,2,3]. Another correct ordering is [0,2,1,3].

Need a Hint?
Erwägen Sie die Verwendung von Graphs-spezifischen Datenstrukturen wie Mengen oder Heaps.
Edge Cases to Watch
  • Leere Eingabestrukturen
  • Einzelelementeingaben
  • Große numerische Grenzen

Bereit zur Lösung?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Im Editor öffnen
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.