【python-leetcode56-区间合并】合并区间
时间:2022-07-24
本文章向大家介绍【python-leetcode56-区间合并】合并区间,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题描述:
给出一个区间的集合,请合并所有重叠的区间。
示例 1:
输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2:
输入: [[1,4],[4,5]] 输出: [[1,5]] 解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
这题之间看过,今天又看到了,大致知道是先要排序,但是忘了怎么更新结果。
核心:其实是贪心法的体现,关注于相邻的两个数组,那么就有两种情况,以[[1,3],[2,6],[8,10],[15,18]]为例。
先对二维数组按一维数组的第0位进行排序,假设结果是res=[]。
当res为空时先将[1,3]加入到res中,再遍历到[2,6],此时有两种情况,如果当前数组的第0位大于res中最后一个数组的第1位,说明当前数组和res末尾的数组不会重叠,此时之间将当前数组加到res末尾。如果当前数组第0位小于或等于res末尾数组第1位,再判断当前数组第1位和res末尾数组第一位誰大,将其更新res末尾数组的第一位。依次类推。
代码:
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
res = []
intervals.sort()
for i in intervals:
if not res or res[-1][1]<i[0]:
res.append(i)
else:
res[-1][1] = max(res[-1][1],i[1])
return res
结果:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 10 行实现最短路算法
- 深度学习Pytorch检测实战 - Notes - 第6章 单阶经典检测器:YOLO
- 从图片裁剪来聊聊前端二进制
- 【投稿】刀哥:Rust学习笔记 2
- 【每周一库】- JWT的Rust实现
- 【Rust日报】2020-08-15 Rust Nightly 标准库文档已涵盖了每个关键字
- 【Rust日报】2020-08-16 Cranelift现在可以编译rustc,比LLVM的编译速度快7倍!
- 【Rust日报】2020-08-17 浏览器之外的 WebAssembly
- 前沿技术探讨:Rust语言真的安全吗?
- Java、Go和Rust间的比较
- 【文末送书】非常实用的 Python 技巧
- 消息队列:Rabbitmq如何保证不丢消息
- 二叉树:删除节点
- Go之heap
- 算法篇:树之topk问题