LeetCode:Merge Intervals
2016-07-01 13:19
260 查看
Merge Intervals
Total Accepted: 71689 TotalSubmissions: 275494 Difficulty: Hard
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].
Subscribe to see which companies asked this question
Hide Tags
Array Sort
Hide Similar Problems
(H) Insert Interval (E)
Meeting Rooms (M) Meeting Rooms II
思路:
用开始时间排个序,维护两个值start、end,然后判断“上一个集合”的结束时间与“下一个集合”开始时间时否交叉,交叉则合并;
不交叉则重设start、end值。
java code:
/** * 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; } * } */ public class Solution { public List<Interval> merge(List<Interval> intervals) { List<Interval> result = new ArrayList<>(); if(intervals == null || intervals.size() == 0) return result; Collections.sort(intervals, new Comparator<Interval>(){ @Override public int compare(Interval val1, Interval val2) { return Integer.compare(val1.start, val2.start); } }); int start = intervals.get(0).start; int end = intervals.get(0).end; for(Interval val: intervals) { if(val.start <= end) { end = Math.max(end, val.end); }else{ result.add(new Interval(start, end)); start = val.start; end = val.end; } } result.add(new Interval(start, end)); return result; } }
相关文章推荐
- SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
- 浅析android应用增量升级
- chroot命令学习
- linux设备树的解释 - DT文件数据结构
- 角点检测与FindChessboardCorners函数
- Servlet基本概念
- String比较 ==和equals的区别
- androdi 自定义控件 ViewGroup(一)
- Android中ANR分析
- Redis和Memcached的区别
- 1253胜利大逃亡(bfs)
- [改善Java代码]使用valueOf前必须进行校验
- Unity5.0后(unity5.3.5)科大讯飞语音识别Unity-Android SDK 的开发
- springmvc log问题
- LCA模板
- Qt之QThread
- SSM框架引入js等文件失败,springMVC引入js等文件失败问题解决
- Qt之QThread
- Vue.js介绍
- css实现隐藏显示