题目

给出一个区间的集合,请合并所有重叠的区间。

示例 1:

输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]

思路

通过设置一个移动的判定区间,来完成区间的合并

首先对数组排序,使其以左区间为标准,从小到大,依次排序,然后依次读出数组:

当取出的数组的left <= 判定区间right 且取出的数组的right >= 判定区间right :则认为两个区间有重合,合并区间

当取出的数组的left > 判定区间right:不存在重合,当新区间作为判定区间。

实现

class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
intervals.sort()
result = list()
if not intervals:
return []
result.append(intervals[0])
for idx in intervals:
left = result[-1][0]
right = result[-1][1]
if idx[0] <= right and idx[1] >= right:
result[-1][1] = idx[1]
elif idx[0] > right:
result.append(idx)
return result

最新文章

  1. Android编码规范03
  2. Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题
  3. Mac工具
  4. 转载:Linux kernel rt_mutex的背景和简介
  5. js判断元素是否隐藏的方法
  6. Scrum Meeting---Three(2015-10-27)
  7. How to convert an IPv4 address into a integer in C#?
  8. javascript基础学习(二)
  9. IOS中获取各种文件的目录路径的方法-备
  10. 谈谈new Thread的弊端及Java四种线程池的使用
  11. Android 边框圆角
  12. ZUFE OJ 2301 GW I (3)
  13. [模板] 网络流相关/最大流ISAP/费用流zkw
  14. HTTP之状态码
  15. 可以落地的DDD到底长什么样?
  16. 首篇 sdk 之 AlertDialog
  17. H5 边框:带border的百分比布局
  18. .NET 和 .NET框架概览
  19. htop工具使用
  20. Go语言并发编程总结

热门文章

  1. 简直骚操作,ThreadLocal还能当缓存用
  2. ReentrantLock与synchronized 源码解析
  3. C#图解教程(第四版)—03—类和继承
  4. 【译】GitHub 为什么挂?官方的可行性报告为你解答
  5. K8S(11)配置中心实战-单环境交付apollo三组件
  6. xshell乱码解决办法
  7. python 09 数据包 异常处理
  8. 编译原理根据项目集规范族构造LR(0)分析表
  9. Java 中几种常用设计模式
  10. 仿京东BOE官网 css代码