题目链接
思路
- 注意合并区间的规则是,对于有重合的区间直接合并(重合意味着某一个区间的头部在另一个区间之中)
- 所以我们可以先把区间按照区间头排序,然后再挨个判断是否重合~
- 注意具体的写法
class Solution {
public int[][] merge(int[][] intervals) {
List<int[]> resultList = new ArrayList<>();
Arrays.sort(intervals, Comparator.comparingInt(e -> e[0]));
int i = 0;
while (i < intervals.length) {
int[] temp = new int[]{intervals[i][0], intervals[i][1]};
int j = i + 1;
while (j < intervals.length && intervals[j][0] <= temp[1]) {
temp[1] = Math.max(temp[1], intervals[j][1]);
j++;
}
i = j;
resultList.add(temp);
}
int[][] result = new int[resultList.size()][];
return resultList.toArray(result);
}
}