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
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))