hot100当中的题
首先感谢y老师
是一道区间合并模版题
主要思路就是先排序再合并
(我要好好学习一下区间比较的格式怎么写)
时间复杂度:O(nlogn) 空间复杂度:O(logn)
class Solution {
public int[][] merge(int[][] intervals) {
int m = intervals.length;
int n = intervals.length;
Arrays.sort(intervals,new Comparator<int[]>(){
public int compare(int[] o1, int[] o2){
return o1[0] - o2[0];
}
});
List<int[]> ans = new ArrayList<>();
for(int i = 0; i < m; i++){
int l = intervals[i][0];
int r = intervals[i][1];
if(ans.size() == 0 || ans.get(ans.size() - 1)[1] < l){
ans.add(new int[]{l,r});
}else{
ans.get(ans.size() - 1)[1] = Math.max(r,ans.get(ans.size() - 1)[1]);
}
}
return ans.toArray(new int[ans.size()][]);
}
}
再接再厉
希望做题能越做越好
算法总结指路:
其中第十个就是区间合并