[Leetcode] 0056. Fusionar intervalos

Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github

Tabla de contenido

Medio

 


Dada una serie de intervalos dónde intervalos[i] = [inicio i , final i ], fusiona todos los intervalos superpuestos y regresa una matriz de intervalos no superpuestos que cubren todos los intervalos en la entrada.

Ejemplo 1:

Aporte: intervalos = [[1,3],[2,6],[8,10],[15,18]]
Producción: [[1,6],[8,10],[15,18]]
Explicación: Dado que los intervalos [1,3] y [2,6] se superponen, combínelos en [1,6].

Ejemplo 2:

Aporte: intervalos = [[1,4],[4,5]]
Producción: [[1,5]]
Explicación: Los intervalos [1,4] y [4,5] se consideran superpuestos.

Restricciones:

  • 1 <= intervalos.longitud <= 10 4
  • intervalos[i].longitud == 2
  • 0 <= inicio i <= final i <= 10 4

Pitón

				
					Complejidad de tiempo #: O(nlogn) Complejidad de espacio #: O(n) al escribir clase de lista de importación Solución: def merge(self, intervalos: Lista[Lista[int]]) -> Lista[Lista[int]]: intervalos. sort() mergeResult = [intervalos[0]] para intervalo en intervalos: si mergeResult[-1][1] < intervalo[0]: mergeResult.append(interval) else: mergeResult[-1][1] = max( mergeResult[-1][1], intervalo[1]) devuelve intervalos mergeResult = [[1, 3], [2, 6], [8, 10], [15, 18]] print(Solución().merge (intervalos)) intervalos = [[1, 4], [4, 5]] print(Solución().merge(intervalos)) intervalos = [[1, 4], [2, 3]] print(Solución() .merge(intervalos)) intervalos = [[1, 4], [1, 4]] print(Solución().merge(intervalos))
				
			
es_ESEspañol