以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。
var DataMerage = function (Data) { //当数组里只有一组数据时 if(Data.length === 1) { return Data }; let Arr = []; Data.sort((a,b)=>a[0]-b[0]) action(Data,Arr,0) return Data } var action = function (arr,ans, index) { if(index==arr.length-1){ ans.push(arr[index]) return } if (arr[index + 1][0] > arr[index][1]) { ans.push(arr[index]) action(arr, ans, index + 1) }else if (arr[index + 1][0] >= arr[index][0]) { // 如果重合,将重合结果带入下一次循环继续判断是否重合 arr[index+1]=[arr[index][0], Math.max(arr[index+1][1], arr[index][1])] action(arr, ans, index + 1) } }