【LeetCode Hot100】56.合并区间

【LeetCode Hot100】56.合并区间
题目描述以数组 intervals 表示若干个区间的集合其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间并返回 一个不重叠的区间数组该数组需恰好覆盖输入中的所有区间 。示例 1输入intervals [[1,3],[2,6],[8,10],[15,18]]输出[[1,6],[8,10],[15,18]]解释区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2输入intervals [[1,4],[4,5]]输出[[1,5]]解释区间 [1,4] 和 [4,5] 可被视为重叠区间。示例 3输入intervals [[4,7],[1,4]]输出[[1,7]]解释区间 [1,4] 和 [4,7] 可被视为重叠区间。提示1 intervals.length 104intervals[i].length 20 starti endi 104解题思路无论如何先按照左端点进行从小到大的排序这样才能更好地判断重叠区间AC代码varmergefunction(intervals){intervals.sort((a,b)a[0]-b[0])//从小到大排序varnewarr[]varright0for(vari0;iintervals.length-1;i){if(intervals[i1][0]intervals[i][1]){//如果C处于A、B之间intervals[i1][0]intervals[i][0]//将A换到Cintervals[i1][1]Math.max(intervals[i][1],intervals[i1][1]//B、D取大放在D位}else{newarr.push(intervals[i]}}newarr.push(intervals[intervals.length-1])returnnewarr};