解题思路
首先对当前的intervals进行排序,用Collections.sort(intervals, (o1,o2)->Integer.compare())
记录上一个的头尾
和上一个进行比较
class Solution {
public List<Interval> merge(List<Interval> intervals) {
if(intervals.size() <= 1){
return intervals;
}
Collections.sort(intervals, (o1,o2)->Integer.compare(o1.start,o2.start));
int lastStart = intervals.get(0).start;
int lastEnd = intervals.get(0).end;
List<Interval> res = new LinkedList<>();
for(Interval current : intervals){
if(current.start > lastEnd){
res.add(new Interval(lastStart,lastEnd));
lastEnd = current.end;
lastStart = current.start;
} else {
lastEnd = Math.max(current.end, lastEnd);
}
}
res.add(new Interval(lastStart,lastEnd));
return res;
}
}