题目描述
题目难度:Medium
Given a collection of intervals, merge all overlapping intervals.
- Example 1:
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].
- Example 2:
Input: [[1,4],[4,5]]
Output: [[1,5]]
Explanation: Intervals [1,4] and [4,5] are considered overlapping.
AC代码
/**
* 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> resList = new ArrayList<>();
Collections.sort(intervals, new Comparator<Interval>(){
@Override
public int compare(Interval a, Interval b){
return a.start - b.start;
}
});
for(Interval interval : intervals){
if(resList.isEmpty() || resList.get(resList.size() - 1).end < interval.start)
resList.add(interval);
else resList.get(resList.size() - 1).end = Math.max(resList.get(resList.size() - 1).end, interval.end);
}
return resList;
}
}