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 Kurs a beginnen kannst. 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
wahr, wenn jeder Kurs abgeschlossen werden kann, andernfalls falsch

Einschränkungen

  • 1 ≤ numCourses ≤ 105
  • 1 ≤ prerequisites.length ≤ 5000
  • Jedes Paar [a, b] erfüllt 0 ≤ a, b < numCourses.
  • Kein Paar erscheint zweimal.
  • Ein Paar kann denselben Kurs zweimal nennen, [a, a]. Dieser Kurs benötigt sich selbst als Voraussetzung, 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, und Kurs 1 gibt sowohl 2 als auch 3 frei, daher funktioniert die Reihenfolge 0, 1, 2, 3.

lock icon+20 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Beliebig viele Kurse passen in ein Semester, solange die Voraussetzungen jedes Kurses in früheren Semestern erfüllt wurden. Was ist die kleinste Anzahl von Semestern, in der alle Kurse absolviert werden können?

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

Fall 1

Fall 2

Eingabe

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

Erwartet

true