56.合并区间 纠错记录
思路:给出一个区间的集合,请合并所有重叠的区间。
输入: intervals = [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
有了之前的经验(区间排序问题)我就自然而然的想到先排序,那么又会面临一个问题,是按照区间左边还是右边排序呢?之前做过的题目一般都是按照右边排序,那么这次我也按照右边排序吧,使用left和right来维护所合并的区间,动态更新left和right:
public int[][] merge(int[][] intervals) {
if(intervals.length <= 1) return intervals;
//Arrays.sort(arr,(a,b)->a[0]-b[0]);
List<int[]> res = new ArrayList<>();
Arrays.sort(intervals,new Comparator<int[]>(){
public int compare(int[] a,int[] b){
return a[0]-b[0];
}
});
int left = intervals[0][0];
int right = intervals[0][1];
for