O07

Görev Sırası

Kıdemli Aday (Mid/Senior)
Hedef Süre: 25 - 35 Dakika
Tip: ARRAY

Teknik Tanım & Görev

Bir derleme sistemi, 0'dan n-1'e kadar numaralanmış görevleri çalıştıracak. Bazı görevler diğerlerine bağımlı. Bağımlılıklar [a, b] ikilileriyle veriliyor ve anlamı şu: "a GÖREVİ, b GÖREVİNDEN ÖNCE tamamlanmalıdır" (yani b, a'ya bağımlıdır). Görevlerin GEÇERLİ bir çalışma sırasını döndür. Birden fazla geçerli sıra olabilir; bunların arasından SÖZLÜK SIRASI BAKIMINDAN EN KÜÇÜK OLANI (lexicographically smallest) döndür. Bağımlılıklar bir DÖNGÜ oluşturuyorsa geçerli bir sıra yoktur; bu durumda BOŞ DİZİ [] döndür.

Fonksiyon İmzası (Python)

gorev_sirasi(n: int, bagimliliklar: list[list[int]]) -> list[int]

Girdi ve Çıktı Sözleşmesi

Çıktı Kuralı:Uzunluğu n olan bir sıra, veya döngü varsa boş dizi [].

Sistem Kısıtları (Constraints)

1 <= n <= 10^4
0 <= bagimliliklar.length <= 10^4
0 <= a, b < n ve a != b
Tekrar eden ikili yoktur

Örnek Yürütme Analizi

n = 4, bagimliliklar = [[0,1], [0,2], [1,3], [2,3]]
gelen kenar: 0:0, 1:1, 2:1, 3:2
hazır küme {0} -> 0 çalışır -> hazır {1,2} -> en küçük 1 -> hazır {2} -> 2 -> hazır {3} -> 3
cevap: [0, 1, 2, 3]

Örnek Test Senaryoları (3)

Örnek 1
Girdi:[4,[[0,1],[0,2],[1,3],[2,3]]]
Beklenen Çıktı:[0,1,2,3]
Örnek 2: Doğrusal Zincir
Girdi:[3,[[0,1],[1,2]]]
Beklenen Çıktı:[0,1,2]
Örnek 3: Tamamen Bağımsız
Girdi:[3,[]]
Beklenen Çıktı:[0,1,2]
Python Editörü Yükleniyor...
Girdi Parametreleri
[
  4,
  [
    [
      0,
      1
    ],
    [
      0,
      2
    ],
    [
      1,
      3
    ],
    [
      2,
      3
    ]
  ]
]
Beklenen Çıktı
[
  0,
  1,
  2,
  3
]