150 najlepszych wywiadówŁatwe

Czas opóźnienia sieci

Szczegółowy przewodnik i implementacja Python dla problemu „Czas opóźnienia sieci”.

Oświadczenie o problemie

Łatwe

Dana jest sieć n węzłów oznaczonych liczbami od 1 do n. Podawane są również czasy podróży, lista czasów podróży jako skierowane krawędzie times[i] = [ui, vi, wi], gdzie ui to węzeł źródłowy, vi to węzeł docelowy, a wi to czas potrzebny sygnałowi na podróż od źródła do celu.

Wyślemy sygnał z danego węzła k. Zwróć minimalny czas potrzebny wszystkim n węzłom na odebranie sygnału. Jeśli nie jest możliwe, aby wszystkie n węzłów odebrało sygnał, zwróć -1.

Napisz funkcję networkDelayTime(times: List[List[int]], n: int, k: int) -> int.

Ograniczenia
  • 1 <= k <= n <= 100
  • 1 <= len(times) <= 6000
  • times[i].length == 3
  • 1 <= ui, vi <= n
  • ui != vi
  • 0 <= wi <= 100
  • All the pairs (ui, vi) are unique

Przykłady

Example 1
Input
times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 2
Output
2
Explanation

The signal starts at node 2. It reaches 1 and 3 in 1 unit of time, and 4 in 2 units of time.

Example 2
Input
times = [[1,2,1]], n = 2, k = 1
Output
1
Explanation

Signal reaches node 2 from node 1 in 1 unit of time.

Example 3
Input
times = [[1,2,1]], n = 2, k = 2
Output
-1
Explanation

Signal starts at node 2, but there is no path from node 2 to node 1. So node 1 never receives it.

Need a Hint?
Rozważ użycie struktur danych specyficznych dla zaawansowanych wykresów, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Otwórz w Edytorze
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.