题目描述:
Given a collection of intervals, merge all overlapping intervals.
For example,
Given[1,3],[2,6],[8,10],[15,18],
return[1,6],[8,10],[15,18].
/**
* 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; }
* }
*/
import java.util.*;
public class Solution {
public ArrayList<Interval> merge(ArrayList<Interval> intervals) {
ArrayList<Interval> array=new ArrayList();
if(intervals == null||intervals.size() == 0)
return array;
Collections.sort(intervals,new intervalComparator());
int start=intervals.get(0).start;
int end=intervals.get(0).end;
for(int i=1;i<intervals.size();i++)
{
Interval inter=intervals.get(i);
if(inter.start>end)
{
array.add(new Interval(start,end));
start=inter.start;
end=inter.end;
}else
{
end=Math.max(end,inter.end);
}
}
array.add(new Interval(start,end));
return array;
}
}
//外部实现比较器Comparator 泛型<Interval>;
class intervalComparator implements Comparator<Interval>
{
public int compare(Interval a,Interval b)
{
if(a.start!=b.start)
{
return a.start-b.start;
}else
{
return a.end-b.end;
}
}
}