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

把一个区间插入一个已排序的无重叠的区间, 如果重叠的话,合并之

方法一:有点类似于快排的方法

 class Solution(object):
def insert(self, intervals, newInterval):
s,e = newInterval.start,newInterval.end
small = [ i for i in intervals if i.end<s ]
large = [ i for i in intervals if i.start>e ]
if small + large != intervals:
s = min(s,intervals[len(small)].start)
e = max(e,intervals[~len(large)].end)
return small+[Interval(s,e)]+large

方法二:和上面方法一样,不过这个代码太帅了!!!只需要遍历一次

 class Solution(object):
def insert(self, intervals, newInterval):
s,e = newInterval.start,newInterval.end
parts = mid,left,right=[],[],[]
for v in intervals:
parts[(v.end<s)-(v.start>e)].append(v)
if mid:
s = min(s,mid[0].start)
e = max(e,mid[-1].end)
return left+[Interval(s,e)]+right

最新文章

  1. [LeetCode] Group Shifted Strings 群组偏移字符串
  2. php 多条数据更新
  3. 《Java虚拟机并发编程》学习笔记
  4. Android应用安全之Content Provider安全
  5. css知识
  6. getting started with Baxter Research Robot
  7. Linux 用户与用户组
  8. avalon.js实践 svg地图配置工具
  9. Unix/Linux环境C编程入门教程(7) OPENBSDCCPP开发环境搭建
  10. python的数据类型及操作
  11. JAVA之旅(九)——Object类,equals,toString,getClass,内部类访问规则,静态内部类,内部类原则,匿名内部类
  12. Activity的启动流程
  13. ASP.NET -- WebForm -- ScriptManager 类
  14. es6可变参数-扩展运算符
  15. org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#39;dataSource&#39; defined in class path resource [app2.xml]: Instantiation of bean failed; nested exception is org.spr
  16. shell中特殊位置参数变量
  17. Tomcat出现 java.net.ConnectException: Connection refused 异常的原因及解决方法
  18. AspNet mvc的一个bug
  19. canvas实现五子棋界面
  20. R语言编程艺术(4)R对数据、文件、字符串以及图形的处理

热门文章

  1. 20145234黄斐《Java程序设计》第五周
  2. celery简介
  3. 差分约束系统+(矩阵)思维(H - THE MATRIX PROBLEM HDU - 3666 )
  4. 20165227 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
  5. 解决修改表结构,添加外键时出现&ldquo;约束冲突&rdquo;的错误
  6. linux cpu、内存、硬盘空间查询
  7. Hash 分布均衡算法
  8. python网络编程-同步IO和异步IO,阻塞IO和非阻塞IO
  9. ggplot2使用初探
  10. js自定义鼠标右键菜单