当前位置: 首页 > news >正文

Day 36 贪心算法 part05 : 435. 无重叠区间 763.划分字母区间 56. 合并区间

56. 合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例 2:

输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

提示:

  • 1 <= intervals.length <= 104
  • intervals[i].length == 2
  • 0 <= starti <= endi <= 104

通过次数

701.1K

提交次数

1.4M

通过率

49.6%

class Solution(object):def merge(self, intervals):""":type intervals: List[List[int]]:rtype: List[List[int]]time: O(nlogn) 主要由排序操作决定,其中 n 是区间的个数。space: O(n) 用于存储结果区间。"""result = []# base case: 区间集合为空直接返回if not intervals:return result  # 按区间的起始点进行排序intervals.sort(key=lambda x: x[0])result.append(intervals[0])  # 第一个区间可以直接放入结果集中 for i in range(1, len(intervals)):current_start, current_end = intervals[i]last_start, last_end = result[-1]# 如果当前区间与结果列表中的最后一个区间不重叠,则将当前区间添加到结果列表中if current_start > last_end:result.append([current_start, current_end]) # intervals[i]也可以else:# 否则,合并这两个区间# 合并只需更新结果集最后一个区间的右边界,因为根据排序,左边界已经是最小的result[-1][1] = max(current_end, last_end)return result 

 

http://www.lryc.cn/news/160800.html

相关文章:

  • 使用Python将网页数据保存到NoSQL数据库的方法和示例
  • 两个路由器如何连接设置的方法攻略
  • 分类任务评价指标
  • c++静态成员
  • go-zero直连与etcd服务注册中心
  • Kotlin File writeText appendText appendBytes readBytes readText
  • 常见缺少msvcp140.dll问题及解决方法,分享多种方法帮你解决
  • 【K210+ESP8266图传上位机开发】TCP server + JPEG图像解析上位机开发
  • Linux查看当前文件夹的大小
  • YOLO目标检测——密集人群人头数据集+已标注yolo格式标签下载分享
  • 论文精读 —— Gradient Surgery for Multi-Task Learning
  • 【VS Code插件开发】常见自定义命令(七)
  • Spring Cloud服务发现与注册的原理与实现
  • FFmpeg入门之简单介绍
  • 新版DBeaver调整编辑窗口字体大小
  • 《vue3实战》运用push()方法实现电影评价系统的添加功能
  • JavaScript学习笔记02
  • 短信过滤 APP 开发
  • 【计算机基础知识7】垃圾回收机制与内存泄漏
  • [学习笔记]CS224W
  • 华为云API对话机器人CBS的魅力—实现简单的对话操作
  • 精益制造、质量管控,盛虹百世慧共同启动MOM(制造运营管理)
  • 【科研论文配图绘制】task7密度图绘制
  • Python3 集合
  • 【山河送书第十期】:《Python 自动化办公应用大全》参与活动,送书两本!!
  • Java多线程——同步
  • Vue+NodeJS实现邮件发送
  • Go语言网络编程(socket编程)TCP粘包
  • 【再识C进阶2(中)】详细介绍指针的进阶——函数指针数组、回调函数、qsort函数
  • PaddleOCR学习笔记3-通用识别服务