Menu
CoddyTech

Course Schedule

Es gibt numCourses Kurse, nummeriert von 0 bis numCourses-1. Jedes Paar [a, b] in prerequisites bedeutet, dass du Kurs b abschließen musst, bevor du mit Kurs a beginnst. Gib true zurück, wenn es eine Reihenfolge gibt, in der du alle Kurse abschließen kannst, und false, wenn es keine gibt.

Funktion

canFinish(numCourses: integer, prerequisites: integer-2d-array) → boolean
numCoursesinteger
die Anzahl der Kurse
prerequisitesinteger-2d-array
die Paare [a, b], wobei jedes bedeutet, dass Kurs b vor Kurs a kommt
Gibt zurückboolean
true, wenn jeder Kurs abgeschlossen werden kann, andernfalls false

Einschränkungen

  • 1 ≤ numCourses ≤ 105
  • 1 ≤ prerequisites.length ≤ 5000
  • Für jedes Paar [a, b] gilt 0 ≤ a, b < numCourses.
  • Kein Paar kommt zweimal vor.
  • Ein Paar kann denselben Kurs zweimal nennen, [a, a]. Dieser Kurs setzt sich selbst voraus, daher kann er niemals belegt werden.

Beispiele

Eingabe
numCourses = 4prerequisites = [[1, 0], [2, 1], [3, 1]]
Ausgabe
true
Erklärung
Kurs 0 hat keine Voraussetzungen, also belegst du ihn zuerst. Dadurch wird Kurs 1 frei, wodurch 2 und 3 frei werden, sodass die Reihenfolge 0, 1, 2, 3 funktioniert.
challenge icon

Weiterführende Frage

In ein Semester passen beliebig viele Kurse, solange die Voraussetzungen für jeden Kurs in früheren Semestern erfüllt wurden. Wie viele Semester sind mindestens nötig, um alle Kurse abzudecken?

Code zurücksetzen
def canFinish(numCourses, prerequisites):
    # Schreibe hier den Code

Test #1

Test #2

Argumente

numCourses = 4
prerequisites = [[1, 0], [2, 1], [3, 1]]

Erwartete Ausgabe

true