Given a collection of intervals, merge all overlapping intervals.
Input: [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
Input: [[1,4],[4,5]]
Output: [[1,5]]
Explanation: Intervals [1,4] and [4,5] are considerred overlapping.
/**
* 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; }
* }
*/
class Solution {
public List<Interval> merge(List<Interval> intervals) {
List<Interval> list = new ArrayList<>();
intervals.sort(Comparator.comparing(i -> i.start));
Interval last = null;
for(Interval item : intervals){
if(last == null || last.end < item.start){
list.add(item);
last = item;
}else{
last.end = Math.max(last.end,item.end);
//因为不确定和再下一个是不是存在重合,所以现在还不能加到list里面
// list.add(last);
// last = item;
}
}
return list;
}
}