[leedcode 56] Insert Interval
2015-07-12 23:19
417 查看
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
You may assume that the intervals were initially sorted according to their start times.
Example 1:
Given intervals
Example 2:
Given
This is because the new interval
You may assume that the intervals were initially sorted according to their start times.
Example 1:
Given intervals
[1,3],[6,9], insert and merge
[2,5]in as
[1,5],[6,9].
Example 2:
Given
[1,2],[3,5],[6,7],[8,10],[12,16], insert and merge
[4,9]in as
[1,2],[3,10],[12,16].
This is because the new interval
[4,9]overlaps with
[3,5],[6,7],[8,10].
/** * 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> insert(List<Interval> intervals, Interval newInterval) { //遍历intervals,并和newInterval对比: //1 如果比newInterval小:直接加入新结果集合 //2 如果有overlap,动态改变newInterval为新的区间,继续合并 //3 如果比newInterval大:加入newInterval到新集合,然后把newInterval更新为当前对象 //解题思路:画图,先排除两种不重叠的情况,对重叠情况最后处理, //需要注意中间值temp的变化,以及最后需要添加最后一个temp List<Interval> res=new ArrayList<Interval>(); Interval temp=newInterval; for(int i=0;i<intervals.size();i++){ Interval cur=intervals.get(i); if(cur.start>temp.end){ res.add(temp); temp=cur; }else{ if(temp.start>cur.end){ res.add(cur); }else{ int start=Math.min(cur.start,temp.start); int end=Math.max(cur.end,temp.end); Interval newInt=new Interval(start,end); temp=newInt; } } } res.add(temp); return res; } }
相关文章推荐
- 跟着实例学习设计模式(7)-原型模式prototype(创建型)
- XCode常用快捷键的使用
- 游戏引擎不仅是代码,更多的是完善的工具
- UVA - 1398 Meteor
- vim的使用技巧
- Quick Reference Guide for Intel® Core™ Processor Graphics
- Spring init-method和destroy-method 的使用
- SPOJ - AGGRCOW Aggressive cows(二分枚举最优解)
- kali linux 安装Pidgin QQ
- linux下完全删除mysql
- eclipse+pydev开发环境搭建
- git命令之git clone用法
- IOS开发- 02.数据懒加载
- Linux Shell 编程学习笔记(1)
- HDU 4336 Card Collector (状压+概率DP)
- 怎样在工作中积累自己的资源!?
- 2015071203 - 尽可能日清日结
- 【操作系统】调度算法
- 精益创业方法论
- ZOJ 3822 Domination