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
Se le proporciona una serie de intervalos que no se superponen intervalos
dónde intervalos[i] = [inicio i , final i ]
representan el inicio y el final del yo
intervalo y intervalos
está ordenado en orden ascendente por empiezo yo
También te dan un intervalo. nuevoIntervalo = [inicio, fin]
que representa el inicio y el final de otro intervalo.
Insertar nuevointervalo
en intervalos
tal que intervalos
todavía está ordenado en orden ascendente por empiezo yo
y intervalos
todavía no tiene intervalos superpuestos (fusione los intervalos superpuestos si es necesario).
Devolver intervalos
después de la inserción.
Nota que no necesitas modificar intervalos
en el lugar. Puede crear una nueva matriz y devolverla.
Ejemplo 1:
Aporte: intervalos = [[1,3],[6,9]], nuevoIntervalo = [2,5] Producción: [[1,5],[6,9]]
Ejemplo 2:
Aporte: intervalos = [[1,2],[3,5],[6,7],[8,10],[12,16]], nuevoIntervalo = [4,8] Producción: [[1,2],[3,10],[12,16]] Explicación: Porque el nuevo intervalo [4,8] se superpone con [3,5],[6,7],[8,10].
Restricciones:
0 <= intervalos.longitud <= 10 4
intervalos[i].longitud == 2
0 <= inicio i <= final i <= 10 5
intervalos
está ordenado porempiezo yo
en ascendiendo orden.nuevointervalo.longitud == 2
0 <= inicio <= fin <= 10 5
Pitón
Complejidad de tiempo de #: O(n) Complejidad de espacio de #: O(n) al escribir clase de lista de importación Solución: def insert(self, intervalos: Lista[Lista[int]], nuevoIntervalo: Lista[int]) -> Lista[Lista [int]]: resultado = [] i = 0 mientras i < len(intervalos) y newInterval[0] > intervalos[i][1]: resultado.append(intervalos[i]) i += 1 mientras i < len (intervalos) y nuevoIntervalo[1] >= intervalos[i][0]: nuevoInterval[0] = min(intervalos[i][0], nuevoInterval[0]) nuevoInterval[1] = max(intervalos[i][ 1], newInterval[1]) i += 1 result.append(newInterval) mientras que i < len(intervals): result.append(intervals[i]) i += 1 devuelve resultado intervalos = [[1, 2], [3, 5], [6, 7], [8, 10], [12, 16]] nuevoIntervalo = [4, 8] print(Solución().insertar(intervalos, nuevoIntervalo))