56. Merge Intervals
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.
/**
* 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) {
Collections.sort(intervals,new Comparator<Interval>(){
public int compare(Interval int1,Interval int2){
return int1.start - int2.start ;
}
});
if(intervals.size()<2) return intervals;
List<Interval> res = new ArrayList<Interval>();
Interval inte = intervals.get(0);
for(int i = 0 ;i<intervals.size();i++){
Interval temp = intervals.get(i);
if(inte.end>=temp.start){
inte.end = Math.max(inte.end,temp.end);
}else
{
res.add(inte);
inte = temp;
}
}
res.add(inte);
return res;
}
}