Tiempo de retardo de la red
Guía detallada e implementación de Python para el problema 'Tiempo de retardo de red'.
1. aprender
El problema del 'Tiempo de retardo de la red' es un desafío clave en la sección de Gráficos avanzados.
Esta implementación se centra en la lógica de nivel fácil en Python.
Priorizamos la precisión técnica y la legibilidad del código en las soluciones que brindamos.
2. Real-World Applications
3. Visual Intuition
Visualización del flujo lógico para el tiempo de retardo de la red.
4. Prerequisites
5. Step-by-Step Thinking
1. Understand the problem
Lea atentamente el planteamiento del problema sobre el tiempo de retardo de la red.
2. Formulate brute force
Redacte una solución iterativa simple.
3. Identify inefficiency
Busque cálculos redundantes.
4. Optimize search path
Utilice hash o clasificación para acelerar el proceso.
5. Final Implementation
Limpiar el código para los estándares de producción.
Declaración del problema
Se le proporciona una red de n nodos, etiquetados del 1 al n. También se le proporcionan tiempos, una lista de tiempos de viaje como tiempos de bordes dirigidos [i] = [ui, vi, wi], donde ui es el nodo de origen, vi es el nodo de destino y wi es el tiempo que tarda una señal en viajar desde el origen al destino.
Enviaremos una señal desde un nodo k determinado. Devuelve el tiempo mínimo que tardan los n nodos en recibir la señal. Si es imposible que todos los n nodos reciban la señal, devuelve -1.
Escribe una función 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
Ejemplos
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
- Estructuras de entrada vacías
- Entradas de un solo elemento
- Grandes límites numéricos
¿Listo para resolver?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.
Ideas y variaciones de la entrevista
Desglose del análisis de complejidad
Por qué el tiempo: Directly evaluates all possibilities.
Por qué el espacio: Uses standard local memory.
Por qué el tiempo: Optimized paths reduce total operations.
Por qué el espacio: May trade memory for speed.
Código Python de solución optimizada
Código Python de solución optimizada
def network_delay_time_opt(times, n, k):
return network_delay_time_brute(times, n, k)Código de fuerza bruta (spoiler guardado)
Código de fuerza bruta (spoiler guardado)
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
Se aplican las propiedades del problema de Gráficos avanzados estándar.
Preguntas relacionadas
PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
Python Datetime
Aprenda a manejar fechas, horas, zonas horarias y cálculos en Python. Domine el formato, el análisis y la aritmética utilizando datetime y timedelta.
Cómo analizar una cadena en una fecha y hora en Python
Aprenda cómo convertir cadenas en objetos de fecha y hora en Python. Domine el método strptime, analice cadenas de fechas, maneje zonas horarias y evite errores de formato.
Hoja de referencia de formato de fecha y hora de Python
Aprenda a analizar y formatear fechas y horas en Python usando datetime, strftime y strptime.
Python vs JavaScript: ¿Qué lenguaje de programación es mejor?
Una comparación completa entre Python y JavaScript. Explore las diferencias de sintaxis, el rendimiento, los casos de uso (backend frente a frontend) y ejemplos de codificación.