import java.util.*;
/**
* Definition for an interval.
* public class Interval {
* int start;
* int end;
* Interval() { start = 0; end = 0; }
* Interval(int s, int e) { start = s; end = e; }
* }
*/
public class Solution {
public ArrayList<Interval> merge(ArrayList<Interval> intervals) {
//先将数组列表中的所有区间start进行升序排列
Collections.sort(intervals,(a1,a2)->a1.start-a2.start);
ArrayList<Interval> result = new ArrayList<>();
int n = -1;
for(Interval i:intervals){
//如果[a,b][c,d]两个范围中c>b则不需要合并
if(n==-1||i.start>result.get(n).end){
result.add(i);
n++;
}else{
//如果需要合并则比较b与d的大小
result.get(n).end = Math.max(result.get(n).end,i.end);
}
}
return result;
}
}