leetcode 56. Merge Intervals
来源:互联网 发布:电脑随机抽取软件 编辑:程序博客网 时间:2024/05/15 00:12
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].
构造一个hashmap<起始点,终点>
先放入<1,3>
新的 键值对 i j : 对于起点 < i的且 终点 > i 的: 合并 对于起点 < j的且 终点 > j 的: 合并 对于起点 > i的且 终点 < j 的: 原键值对被吞掉 对于起点 < i的且 终点 > j 的: 新键值对被吞掉
情况非常复杂 写不下了 看了网上的
原来先排个序就完美解决了
排序后相邻的两个
蓝色是start最小的interval 那么第二小的可能有三种情况
1. 被包含
2. 延长了 当前interval
3. 加进来 不冲突
接下来针对当前队尾interval 考虑新的interval
public List<Interval> merge(List<Interval> intervals) { List<Interval> result = new ArrayList<Interval>(); intervals.sort((a,b)->(a.start - b.start)); for(Interval currentInterval:intervals ){ if(result.size() == 0){ result.add(currentInterval); } else{ Interval lastInterval = result.get(result.size()-1); if(currentInterval.start > lastInterval.end) result.add(currentInterval); else if(currentInterval.end > lastInterval.end){ lastInterval.end = currentInterval.end; } } } return result; }
0 0
- [LeetCode]56.Merge Intervals
- 56. Merge Intervals Leetcode
- LeetCode --- 56. Merge Intervals
- LeetCode 56.Merge Intervals
- [Leetcode] 56. Merge Intervals
- [leetcode] 56.Merge Intervals
- 【leetcode】56. Merge Intervals
- [leetcode] 56.Merge Intervals
- **LeetCode 56. Merge Intervals
- LeetCode 56. Merge Intervals
- leetcode 56. Merge Intervals
- 【LeetCode】56. Merge Intervals
- LeetCode 56. Merge Intervals
- 【leetcode】56. Merge Intervals
- leetcode 56. Merge Intervals
- leetcode.56. Merge Intervals
- [LeetCode] 56. Merge Intervals
- leetcode 56. Merge Intervals
- 两栏,左边固定,右边自适应
- 算法之动态规划
- MongoDB3.2副本集配置
- python之私有变量
- 第25周-windows程序设计(基础篇)-第1章-wchar_t 宽字符串
- leetcode 56. Merge Intervals
- NodeJS返回JSON
- poj 3132 Sum of Different Primes
- 1分钟内检查Linux服务器性能的10条命令
- 存文件太大--换至纯C读写文件方法
- maven SpringMVC easyUI项目创建
- java Lock和Condition的用法
- 将博客搬至CSDN
- 请写一个二分查找一个数最先出现的index,如果数不在集合中需要返回(-1)-当前数应该出现的位置