Combine intervalos superpuestos
Combine rangos que se tocan o se solapan
Combine intervalos superpuestos es una lección gratuita de Coding Interview Prep en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Coding Interview Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Coding Interview Prep incluye 4 lecciones en total.
El objetivo de la fusión
Dada una cantidad de intervalos, debe fusionar los que se tocan o se superponen para obtener la menor cantidad posible de rangos sin superposición. 🧩
Cuándo se superponen dos intervalos
Dos intervalos se superponen cuando uno comienza antes de que el otro termine. Después de ordenarlos por inicio, esto significa que el siguiente inicio es menor o igual que el final actual.
Ordene primero, siempre
La fusión solo funciona de izquierda a derecha si los intervalos están ordenados, así que comience por ordenarlos según su inicio. Esta es la base de todo el recorrido.
intervals.sort(key=lambda x: x[0])Mantenga un rango actual
Recorra la lista ordenada manteniendo un intervalo fusionado actual. Cada intervalo nuevo lo extiende o inicia un rango independiente.
Amplíe cuando haya superposición
Si el siguiente inicio está dentro del rango actual, los intervalos se superponen, así que amplíe el final actual hasta el mayor de los dos finales.
cur_end = max(cur_end, end)Elija el final máximo
Use siempre max para calcular el nuevo final. Un intervalo corto incluido dentro de uno largo no debe reducir el rango que ya ha construido.
Cierre uno y abra otro
Si el siguiente inicio está después del final actual, existe un hueco. Añada el rango terminado a la respuesta y comience un nuevo intervalo actual.
result.append([cur_start, cur_end])No olvide el último
El bucle construye el rango final, pero nunca lo añade. Cuando termine el bucle, use append para agregar ese último intervalo actual y no perderlo.
El contacto cuenta como solapamiento
Decida si [1, 3] y [3, 5] deben fusionarse. Normalmente sí, así que use start <= cur_end. Lea el enunciado para confirmar esta regla de los casos límite.
El recorrido completo
Una pasada después de ordenar le proporciona todos los rangos fusionados, por lo que el método completo se ejecuta en O(n log n): la ordenación más un recorrido lineal.
for s, e in intervals[1:]:
if s <= cur_end:
cur_end = max(cur_end, e)
else:
result.append([cur_start, cur_end]); cur_start, cur_end = s, eUn uso común
Fusionar intervalos permite gestionar calendarios y sistemas de reservas: compacte los bloques ocupados para ver el tiempo realmente libre. Muchos problemas de concursos esconden esta misma estructura.
Comprobación rápida
Fusiona los intervalos después de ordenarlos por inicio.
Repaso
Ordene por inicio, mantenga un rango actual y extiéndalo usando el máximo cuando haya solapamiento, o guárdelo y reinícielo cuando haya un espacio. Recuerde añadir el último rango. 🚀
Preguntas frecuentes
¿La lección «Combine intervalos superpuestos» es gratis?
Sí — el texto completo de «Combine intervalos superpuestos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Coding Interview Prep, actualiza a CoddyKit PRO. El curso de Coding Interview Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Combine intervalos superpuestos»?
Combine rangos que se tocan o se solapan Practicas Coding Interview Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Coding Interview Prep?
No se requiere experiencia previa. Coding Interview Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Combine intervalos superpuestos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Coding Interview Prep?
Sí. Cada lección de Coding Interview Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Ordene intervalos por inicio
- Combine intervalos superpuestos
- Barrido lineal para el solapamiento máximo
- Mínimas eliminaciones para evitar solapamientos