Menu
CoddyTech

Course Schedule

numCourses adet 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şlayabilmek için önce b dersini bitirmen gerektiği anlamına gelir. Her dersi bitirebileceğin bir sıra varsa true, yoksa false döndür.

Fonksiyon

canFinish(numCourses: integer, prerequisites: integer-2d-array) → boolean
numCoursesinteger
kurs sayısı
prerequisitesinteger-2d-array
her biri kurs b'nin kurs a'dan ö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 geçerlidir.
  • Hiçbir çift iki kez görünmez.
  • Bir çift aynı dersi iki kez adlandırabilir, [a, a]. Bu dersin önce kendisine ihtiyacı vardır, bu yüzden hiçbir zaman alınamaz.

Örnekler

Girdi
numCourses = 4prerequisites = [[1, 0], [2, 1], [3, 1]]
Çıktı
true
Açıklama
0. dersin ön koşulu yok, bu yüzden önce onu alırsın. Böylece 1. dersin önü açılır ve 1. ders hem 2. hem de 3. dersin önünü açar; dolayısıyla 0, 1, 2, 3 sıralaması işe yarar.

lock iconGönderirken +20 gizli test

challenge icon

Ek soru

Her dönemde, her dersin ön koşulları daha önceki dönemlerde tamamlanmış olduğu sürece istediğin kadar ders alınabilir. Tüm dersleri kapsayan en az dönem sayısı kaçtır?

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

Durum 1

Durum 2

Girdi

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

Beklenen

true