Netzwerkverzögerungszeit
Detaillierte Anleitung und Python-Implementierung für das Problem „Netzwerkverzögerungszeit“.
1. Lernen
Das Problem der „Netzwerkverzögerungszeit“ ist eine zentrale Herausforderung im Abschnitt „Erweiterte Diagramme“.
Diese Implementierung konzentriert sich auf einfache Logik in Python.
Wir legen bei unseren bereitgestellten Lösungen Wert auf technische Genauigkeit und Lesbarkeit des Codes.
2. Real-World Applications
3. Visual Intuition
Visualisierung des Logikflusses für die Netzwerkverzögerungszeit.
4. Prerequisites
5. Step-by-Step Thinking
1. Understand the problem
Lesen Sie die Problemstellung zur Netzwerkverzögerungszeit sorgfältig durch.
2. Formulate brute force
Entwerfen Sie eine einfache iterative Lösung.
3. Identify inefficiency
Suchen Sie nach redundanten Berechnungen.
4. Optimize search path
Verwenden Sie Hashing oder Sortieren, um den Prozess zu beschleunigen.
5. Final Implementation
Bereinigen Sie den Code für Produktionsstandards.
Problemstellung
Sie erhalten ein Netzwerk aus n Knoten, die von 1 bis n beschriftet sind. Sie erhalten auch Zeiten, eine Liste von Laufzeiten als gerichtete Kantenzeiten[i] = [ui, vi, wi], wobei ui der Quellknoten, vi der Zielknoten und wi die Zeit ist, die ein Signal benötigt, um von der Quelle zum Ziel zu gelangen.
Wir werden ein Signal von einem bestimmten Knoten k senden. Gibt die Mindestzeit zurück, die alle n Knoten benötigen, um das Signal zu empfangen. Wenn es nicht möglich ist, dass alle n Knoten das Signal empfangen, geben Sie -1 zurück.
Schreiben Sie eine Funktion networkDelayTime(times: List[List[int]], n: int, k: int) -> int.
- •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
Beispiele
times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 2
2
The signal starts at node 2. It reaches 1 and 3 in 1 unit of time, and 4 in 2 units of time.
times = [[1,2,1]], n = 2, k = 1
1
Signal reaches node 2 from node 1 in 1 unit of time.
times = [[1,2,1]], n = 2, k = 2
-1
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?
Edge Cases to Watch
- Leere Eingabestrukturen
- Einzelelementeingaben
- Große numerische Grenzen
Bereit zur Lösung?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.
Einblicke und Variationen in Interviews
Aufschlüsselung der Komplexitätsanalyse
Warum Zeit: Directly evaluates all possibilities.
Warum Weltraum: Uses standard local memory.
Warum Zeit: Optimized paths reduce total operations.
Warum Weltraum: May trade memory for speed.
Optimierter Lösungs-Python-Code
Optimierter Lösungs-Python-Code
def network_delay_time_opt(times, n, k):
return network_delay_time_brute(times, n, k)Brute-Force-Code (Spoiler Guarded)
Brute-Force-Code (Spoiler Guarded)
import heapq, collections
def network_delay_time_brute(times, n, k):
edges = collections.defaultdict(list)
for u, v, w in times: edges[u].append((v, w))
min_heap = [(0, k)]
visit = {}
while min_heap:
w1, n1 = heapq.heappop(min_heap)
if n1 in visit: continue
visit[n1] = w1
for n2, w2 in edges[n1]:
if n2 not in visit: heapq.heappush(min_heap, (w1 + w2, n2))
return max(visit.values()) if len(visit) == n else -1Algorithm Pattern Checklist
When dealing with Advanced Graphs data patterns.
- Are constraints clear?
- Is there a linear or logarithmic optimization possible?
Key Revision Notes
Es gelten die Standardproblemeigenschaften von Advanced Graphs.
Verwandte Fragen
PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python Datetime
Erfahren Sie, wie Sie in Python mit Datumsangaben, Uhrzeiten, Zeitzonen und Berechnungen umgehen. Master-Formatierung, Parsing und Arithmetik mit Datetime und Timedelta.
So analysieren Sie einen String in eine Datums- und Uhrzeitangabe in Python
Erfahren Sie, wie Sie in Python Zeichenfolgen in Datetime-Objekte konvertieren. Beherrschen Sie die strptime-Methode, analysieren Sie Datumszeichenfolgen, verarbeiten Sie Zeitzonen und verhindern Sie Formatfehler.
Python DateTime-Formatierungs-Spickzettel
Erfahren Sie, wie Sie Datums- und Uhrzeitangaben in Python mithilfe von datetime, strftime und strptime analysieren und formatieren.
Python vs. JavaScript: Welche Programmiersprache ist die beste?
Ein umfassender Vergleich zwischen Python und JavaScript. Entdecken Sie Syntaxunterschiede, Leistung, Anwendungsfälle (Backend vs. Frontend) und Codierungsbeispiele.