Menu
CoddyTech

Network Delay Time

Sebuah jaringan memiliki n simpul yang diberi label dari 1 hingga n. Tautan times[i] = [u, v, w] membawa sinyal dari simpul u ke simpul v dalam waktu w satuan, hanya dalam arah tersebut.

Sebuah sinyal meninggalkan simpul k pada waktu 0 dan merambat melalui setiap tautan yang dapat dilaluinya. Kembalikan waktu saat simpul terakhir menerimanya, atau -1 jika ada simpul yang tidak pernah menerimanya.

Fungsi

networkDelayTime(times: integer-2d-array, n: integer, k: integer) → integer
timesinteger-2d-array
tautan berarah, masing-masing sebagai [u, v, w]
ninteger
jumlah node
kinteger
node yang mengirimkan sinyal
Mengembalikaninteger
waktu saat node terakhir menerima sinyal, atau -1

Batasan

  • 2 ≤ n ≤ 3000
  • 1 ≤ times.length ≤ 4000
  • times[i].length = 3
  • 1 ≤ u, v ≤ n dan u ≠ v
  • 0 ≤ w ≤ 100
  • Tidak ada dua tautan yang memiliki u dan v yang sama.
  • 1 ≤ k ≤ n

Contoh

Input
times = [[1, 2, 4], [1, 3, 1], [3, 2, 2], [2, 4, 1]]n = 4k = 1
Output
4
Penjelasan
Tautan langsung mencapai simpul 2 pada waktu 4, tetapi rute melalui simpul 3 tiba pada waktu 1 + 2 = 3. Simpul 4 menerima sinyal paling akhir, pada waktu 3 + 1 = 4.
challenge icon

Pertanyaan lanjutan

Misalkan sinyal melemah setelah melewati m tautan. Bagaimana cara menemukan waktu node terakhir mendengarnya dalam batas tersebut?

Reset kode
def networkDelayTime(times, n, k):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

4