Menu
CoddyTech

Course Schedule

numCourses ders vardır ve bu dersler 0 ile numCourses-1 arasında numaralandırılmıştır. prerequisites içindeki her [a, b] çifti, a dersine başlamadan önce b dersini tamamlamanız gerektiği anlamına gelir. Her dersi tamamlamanızı sağlayan bir sıralama varsa true, yoksa false döndürün.

Fonksiyon

canFinish(numCourses: integer, prerequisites: integer-2d-array) → boolean
numCoursesinteger
ders sayısı
prerequisitesinteger-2d-array
Her biri b dersinin a dersinden önce geldiği anlamına gelen [a, b] çiftleri
Döndürürboolean
Her ders tamamlanabiliyorsa true, aksi takdirde false

Kısıtlar

  • 1 ≤ numCourses ≤ 105
  • 1 ≤ prerequisites.length ≤ 5000
  • Her [a, b] çifti için 0 ≤ a, b < numCourses koşulu geçerlidir.
  • Hiçbir ikili iki kez görünmez.
  • Bir çift aynı dersi iki kez adlandırabilir: [a, a]. Bu dersin önce kendisinin alınmış olması gerekir; bu yüzden hiçbir zaman alınamaz.

Örnekler

Girdi
numCourses = 4prerequisites = [[1, 0], [2, 1], [3, 1]]
Çıktı
true
Açıklama
Ders 0'ın ön koşulu yok, bu yüzden onu önce alırsın. Böylece ders 1'in, ardından 2 ve 3'ün ön koşulları tamamlanır; dolayısıyla 0, 1, 2, 3 sıralaması işe yarar.
challenge icon

Ek soru

Herhangi sayıda ders tek bir döneme sığabilir; yeter ki her dersin ön koşulları önceki dönemlerde tamamlanmış olsun. Tüm dersleri tamamlamak için gereken en az dönem sayısı kaçtır?

Kodu sıfırla
def canFinish(numCourses, prerequisites):
    # Kodu buraya yazın

Test #1

Test #2

Argümanlar

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

Beklenen Çıktı

true