Menu
CoddyTech

Network Delay Time

Bir ağda 1 ile n arasında etiketlenmiş n düğüm vardır. times[i] = [u, v, w] bağlantısı, sinyali yalnızca bu yönde, u düğümünden v düğümüne w zaman biriminde taşı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ı veya herhangi bir düğüme sinyal hiç ulaşmıyorsa -1 değerini döndür.

Fonksiyon

networkDelayTime(times: integer-2d-array, n: integer, k: integer) → integer
timesinteger-2d-array
yönlü bağlantıların her biri [u, v, w] biçiminde
ninteger
düğüm sayısı
kinteger
sinyali gönderen düğüm
Döndürürinteger
sinyali son düğümün aldığı 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ı hem aynı u hem de aynı v değerine sahip değildir.
  • 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
Doğrudan bağlantı 2 numaralı düğüme 4. zamanda ulaşır, ancak 3 numaralı düğüm üzerinden geçen yol 1 + 2 = 3 sürede varır. 4 numaralı düğüm sinyali en son, 3 + 1 = 4 sürede alır.
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 duyduğu zamanı nasıl bulursun?

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

Test #1

Test #2

Test #3

Argümanlar

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

Beklenen Çıktı

4