题目
合并区间
代码
public class Solution {
public List<Interval> merge(List<Interval> intervals) {
List<Interval> ans = new ArrayList<Interval>();
if(intervals == null || intervals.size() == 0){
return intervals;
}
Collections.sort(intervals,new Comparator<Interval>(){
@Override
public int compare(Interval a,Interval b){
return a.start - b.start;
}
});
Interval pre = intervals.get(0);
for(int i=1;i<intervals.size();i++){
Interval cur = intervals.get(i);
if(pre.end<cur.start){
ans.add(pre);
pre = cur;
}
else{
pre = new Interval(pre.start,Math.max(pre.end,cur.end));
}
}
ans.add(pre);
return ans;
}
}
思路
先排序,会用sort和compare
然后区间的逻辑判断容易多了。