Menu
CoddyTech

Network Delay Time

Bir ağda n düğüm vardır ve bunlar 1'den n'ye kadar etiketlenmiştir. Bağlantılar, times adlı bir liste olarak verilir; burada times[i] = [u, v, w], düğüm u'dan gönderilen bir sinyalin w zaman birimi sonra düğüm v'ye ulaştığı anlamına gelir. Bağlantılar yalnızca tek yönde çalışır.

Bir sinyal, k düğümünden 0 anında yola çıkar ve ulaşabildiği tüm bağlantılar boyunca ilerler. Son düğümün sinyali aldığı zamanı döndür; herhangi bir düğüm sinyali hiç almazsa -1 döndür.

Fonksiyon

networkDelayTime(times: integer-2d-array, n: integer, k: integer) → integer
timesinteger-2d-array
yönlü bağlantılar, her biri [u, v, w] biçiminde
ninteger
düğüm sayısı
kinteger
sinyali gönderen düğüm
Döndürürinteger
sinyalin son düğüme ulaştığı zaman veya -1

Kısıtlar

  • 2 ≤ n ≤ 3000
  • 1 ≤ times.length ≤ 4000
  • times[i].length = 3
  • 1 ≤ u, v ≤ n ve u ≠ v
  • 0 ≤ w ≤ 100
  • Hiçbir iki bağlantı aynı u ve aynı v değerlerini birlikte paylaşmaz.
  • 1 ≤ k ≤ n

Örnekler

Girdi
times = [[1, 2, 4], [1, 3, 1], [3, 2, 2], [2, 4, 1]]n = 4k = 1
Çıktı
4
Açıklama
3. düğüm sinyali 1. zamanda duyar. 2. düğüm doğrudan bağlantısı üzerinden sinyali 4. zamanda duyabilir, ancak 3. düğüm üzerinden geçen yol sinyali 1 + 2 = 3. zamanda ulaştırır ve 4. düğüm sinyali 3 + 1 = 4. zamanda duyar. En son 4. düğüm duyar; bu, 4. zamandadır.

lock iconGönderirken +16 gizli test

challenge icon

Ek soru

Sinyalin m bağlantıyı geçtikten sonra zayıfladığını varsayalım. Bu sınır altında son düğümün sinyali ne zaman duyacağını nasıl bulursunuz?

Kodu sıfırla
def networkDelayTime(times, n, k):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

times = [[1, 2, 4], [1, 3, 1], [3, 2, 2], [2, 4, 1]]
n = 4
k = 1

Beklenen

4