Solución
JL@juanluisabreu_4c541ef6
·29/3/2026TypeScriptsolution.tsTypeScript
function mergeIntervals(intervals: [number, number][]): [number, number][] {
//Recorriendo todos los elementos del array
for(let i = 0; i < intervals.length; i++)
{
//Recorriendo los elementos posterior al elementro del array que esta recorriendo en la iteracción
for(let k = i+1; k < intervals.length; k++)
{
//Obteniendo el elemento inicial y final del intervalor ejemplo: [1,3] => inicial = 1, final = 3
let valorInicialActual = intervals[i][0];
let valorFinalActual = intervals[i][1];
//Obteniendo el elemento inicial y final del intervalor ejemplo: [2,6] => inicial = 2, final = 6
let valorInicioPosterior = intervals[k][0];
let valorFinalPosterior = intervals[k][1];
//Cuando el valor Final sea mayor al elemento inicial, esto indica que hay solapamiento
if (valorFinalActual>= valorInicioPosterior)
{
//Cambiando el valor inicial del elemento actual
intervals[i][0] = valorInicialActual > valorInicioPosterior? valorInicioPosterior: valorInicialActual;
//Cambiando el valor final del elemento actual
intervals[i][1] = valorFinalActual > valorFinalPosterior? valorFinalActual: valorFinalPosterior;
//Eliminando del arreglo de intervalos, el elemento que se acaba de unificar a raiz del solapamiento
intervals.splice(k,1);
}
}
}
return intervals;
}
// No modificar: necesario para evaluar el resultado.
export { mergeIntervals };0respuestas