题目考察的知识点是:
区间合并 贪心。
题目解答方法的文字分析:
主要在于模拟以及二维数组的应用,首先先将二维数组按照第一个元素进行排序,随后开始遍历,当左右边界发生重合的时候才合并两个区间,否则不用处理。按顺序模拟即可。
本题解析所用的编程语言:
java语言。
完整且正确的编程代码:
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param intervals int整型二维数组
* @return int整型二维数组
*/
public int[][] mergeTimeIntervals (int[][] intervals) {
// write code here
int startTime = 0;
int endTime = 0;
ArrayList<int[]> res = new ArrayList<>();
Arrays.sort(intervals, (o1, o2) -> o1[0] - o2[0]);
for (int i = 0 ; i < intervals.length ; i ++) {
startTime = intervals[i][0];
endTime = intervals[i][1];
while (i + 1 < intervals.length && intervals[i + 1][0] >= startTime &&
intervals[i + 1][0] <= endTime) {
endTime = Math.max(endTime, intervals[i + 1][1]);
i++;
}
int[] re = new int[] {startTime, endTime};
res.add(re);
}
int[][] result = res.toArray(new int[res.size()][]);
return result;
}
}

京公网安备 11010502036488号