Merge Intervals
来源:互联网 发布:QT与数据库实现通讯录 编辑:程序博客网 时间:2024/06/05 10:04
题目描述:
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].
先将给定的intervals排序,然后从第一个开始,逐个比较,插入前面的interval,所以这个时候一定要注意最后一个interval,要单独拿出来讨论
public List<Interval> merge(List<Interval> intervals) { List<Interval> list=new ArrayList<Interval>(); int n=intervals.size(); if(n<=1) return intervals; intervals.sort((o1,o2)->{ if(o1.start>o2.start||(o1.start==o2.start&&o1.end>o2.end)) return 1; else if(o1.start<o2.start||(o1.start==o2.start&&o1.end<o2.end)) return -1; else return 0; }); Interval lastInterval=intervals.get(0); for (int i = 1; i < n; i++) { if(intervals.get(i).start>lastInterval.end){ list.add(lastInterval); lastInterval=intervals.get(i); }else{ lastInterval.end=lastInterval.end>intervals.get(i).end?lastInterval.end:intervals.get(i).end; }} //单独讨论最后一个interval if(intervals.get(n-1).start>lastInterval.end){ list.add(intervals.get(n-1)); }else{ list.add(lastInterval); } return list;}
0 0
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- merge intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Merge Intervals
- Selenium实现元素的拖拽(java版)
- 多线程06:《疯狂Java讲义》学习笔记——线程通信
- Less简介
- BaseAdapter使用案例
- 如何在fedora下配置VPN连接
- Merge Intervals
- JavaWeb-问题-代理抛出异常
- IOS中通知中心(NSNotificationCenter)的使用总结
- 证书透明度Certificate Transparency
- kernel 3.18,mcp2515 implemented in AT91SAM9G25
- 【自定义标签开发】10-标签案例-开发转义标签
- 如何调整Linux内核启动中的驱动初始化顺序-驱动加载优先级
- Java中ArrayList类的用法(转)
- 第三方登陆步骤(友盟)