Question:

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].

---------------------------------------

Solution:

public class Solution {
class IntervalAsc implements Comparator<Interval>
{
public int compare (Interval o1, Interval o2)
{
if (o1.start != o2.start)
return o1.start < o2.start ? -1 : 1;
else if (o1.end != o2.end)
return o1.end < o2.end ? -1 : 1;
else
return 0;
}} public ArrayList<Interval> merge (ArrayList<Interval> intervals)
{
Collections.sort(intervals, new IntervalAsc());
ArrayList<Interval> ret = new ArrayList<Interval>();
int n = intervals.size();
if(n==0) return ret;
Interval last=intervals.get(0);
for(int i=1;i<n;i++){
if(intervals.get(i).start>last.end){
ret.add(new Interval(last.start,last.end));
last=intervals.get(i);
}else{
last.end=Math.max(intervals.get(i).end, last.end);
}
}
ret.add(last);
return ret;
} }

需要注意的以下几点:

  1. 这里需要new一个Interval,再放进ArrayList result里。刚开始我就是直接把last放进了result里,忘记了last只是一个类似于指针一样的东西。
  2. 第一次使用到了内部类。更多的内部类的知识看下一篇博客。
  3. Collections.sort的用法。(compare函数的重写)

最新文章

  1. AppScan 测试需要输入用户名密码的网站
  2. #知识#室内设计原理ing
  3. Word中的字体大小
  4. IDEA 进入到项目的系统文件路径
  5. mybatis 模糊查询 like
  6. intellij idea 如何更改编辑器文本字体和大小
  7. 优秀HTML5活动页面
  8. aspose调用打印机打印文档
  9. 【原】Storm分布式RPC
  10. easyui资源
  11. cookie和session有什么区别,请你谈谈cookie的缺点
  12. PHP细节,empty,is_null,isset,if()
  13. 【CQOI2017】【BZOJ4813】小Q的棋盘 DFS
  14. 工作流JBPM
  15. JavaWeb+SVN+Maven+Tomcat +jenkins实现自动化部署
  16. Linux下快速分区格式化大于2T磁盘存储
  17. 全文检索Solr集成HanLP中文分词
  18. STL进阶--vector vs deque
  19. IntelliJ IDEA 2018破解方法
  20. vue 开发系列(二) vue ajax 拦截

热门文章

  1. (2)Underscore.js常用方法
  2. Linux如何查看与/dev/input目录下的event对应的设备
  3. .net转的时间戳用java去解析的代码
  4. 关于 redis、memcache、mongoDB 的对比(转载)
  5. ORA-1461 encountered when generating server alert SMG-3500
  6. Go1.7改善了编译速度并且会生成更快的代码
  7. JavaScript 简介
  8. ThinkPHP的field方法的用法总结
  9. 50个必备的实用jQuery代码段
  10. JS自定义属性兼容