-
Notifications
You must be signed in to change notification settings - Fork 7
Description
https://leetcode.com/problems/parallel-courses/
Burada, alabileceği kadar kursu en az sayıda sömestır'da almaya çalışan bir öğrenci ile empati kuracağız.
Öğrenci bir sömestr'da aslında istediği kadar ders alabilir. Ama bir dersi alması için, öncelikle o ders'e hazırlık olan başka dersleri alması gerekecek.
İşte, bir dersin alınabilmesi için, daha önceki bir sömestr'da alınması gereken dersleri bir array ile temsil ediyorlar.
int[][] relations array'inin her bir elemanı, bir ders ile başka bir ders arasındaki zorunluluğu temsil ediyor.
örnek:
n = 3, relations = [[1,3],[2,3]]
Burada, 3 adet ders olduğunu (n sayısından) anlıyoruz.
Dersler arasındaki ilişkiye bakacak olursak:
[1,3]: 3 numaralı dersi almak için 1 numaralı dersin ve,
[2,3]: 3 numaralı dersi almak için 2 numaları dersin daha önceki sömestırda alınması gerektiğini anlıyoruz
Bu yüzden, ilk sömestır'da 1 ve 2, ikinci sömestırda ise 3 numaralı ders alınacağından, "minimum 2" sömestır gerekir.
Sonuç 2'dir.
Bazen hiçbir ders alınamayabilir. Çünkü her bir ders bir diğerini gerektirdiğinden kördüğüm oluşur.
Örnek:
Input: n = 3, relations = [[1,2],[2,3],[3,1]]
Böyle bir kördüğüm durumunda Sonuç: -1 olarak döndürülmelidir.
Varsayılan kod:
class Solution {
public int minimumSemesters(int n, int[][] relations) {
}
}


