Beschreibung der Frage
Das Array Intervalle stellt eine Menge mehrerer Intervalle dar, wobei ein einzelnes Intervall Intervalle[i] = [starti, endi] ist. Bitte führen Sie alle überlappenden Intervalle zusammen und geben Sie ein Array nicht überlappender Intervalle zurück, das alle Intervalle in der Eingabe genau abdeckt.
Beispiel 1:
Eingabe: Intervalle = [[1,3],[2,6],[8,10],[15,18]]
Ausgabe: [[1,6],[8,10],[15,18]]
Erläuterung: Die Intervalle [1,3] und [2,6] überlappen sich und verschmelzen zu [1,6].
Beispiel 2:
Eingabe: Intervalle = [[1,4],[4,5]]
Ausgabe: [[1,5]]
Erläuterung: Die Intervalle [1,4] und [4,5] können als überlappende Intervalle betrachtet werden.
Hinweis:
Lösung sortieren + einzeln zusammenführen
/**
* @param {number[][]} intervals
* @return {number[][]}
*/
var merge = function(intervals) {
intervals.sort((a,b)=>a[0]-b[0])
let res=[intervals[0]]
for(let i=1;i<intervals.length;i++){
if(intervals[i][0]<=res[res.length-1][1]){
//合并
res[res.length-1][1]=Math.max(res[res.length-1][1],intervals[i][1]);
}else{
res.push(intervals[i]);
}
}
return res;
};
Ergebnisse der: