题目:
分析:
这道题和前一道合并区间基本相似
我们需要额外做的事情就是把新的区间加入到数组中
其他步骤都可以和合并区间的一样
代码:
class Solution {
public int[][] insert(int[][] intervals, int[] newInterval) {
int [][]temp=new int[intervals.length+1][2];
//将新的区间加入到数组中
for(int i=0;i<intervals.length;i++)
temp[i]=intervals[i];
temp[intervals.length]=newInterval;
//排序
Arrays.sort(temp, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] - o2[0];
}
});
List<int[]> list = new ArrayList();
int[] lastInterval = null;
for (int[] interval : temp) {
if(lastInterval == null || lastInterval[1] < interval[0]){
lastInterval = interval;
list.add(lastInterval);
}else if(lastInterval[1] < interval[1]){
lastInterval[1] = interval[1];
}
}
return list.toArray(new int[0][]);
}
}