LeetCode-56. 合并区间【数组 排序】

LeetCode-56. 合并区间【数组 排序】

题目描述:

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

示例 1:

输入:intervals = \[1,3,2,6,8,10,15,18]

输出:\[1,6,8,10,15,18]

解释:区间 1,32,6 重叠, 将它们合并为 1,6.

示例 2:

输入:intervals = \[1,4,4,5]

输出:\[1,5]

解释:区间 1,44,5 可被视为重叠区间。

提示:

1 <= intervals.length <= 104

intervalsi.length == 2

0 <= starti <= endi <= 104

解题思路一:排序?怎么排?当然是排各个区间的左边界,然后判断下一个边界的左边界与结果数组里面的右边界是否重叠。

python中lambda函数

在python中实现排序的方式如下:

python 复制代码
intervals.sort(key=lambda x: x[0])

实现方式还是有点不同的, 因为在python中的排序函数sort支持直接根据关键字进行排序, 实现起来更加简洁.

python 复制代码
class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        res = []
        intervals.sort(key = lambda x: x[0])
        res.append(intervals[0])
        for i in range(1, len(intervals)):
            if intervals[i][0] <= res[-1][1]:
                right = max(intervals[i][1], res[-1][1])
                res[-1][1] = right
            else:
                res.append(intervals[i])
        return res

时间复杂度:O(nlogn) 快排

空间复杂度:O(logn)快排栈

解题思路二:优化

python 复制代码
class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        res = []
        # 空集合直接返回
        intervals.sort(key = lambda x: x[0])
        res.append(intervals[0])
        for i in range(1, len(intervals)):
            if res[-1][1] >= intervals[i][0]:
                res[-1][1] = max(res[-1][1], intervals[i][1])
            else:
                res.append(intervals[i])
        return res 

时间复杂度:O(nlogn) 快排

空间复杂度:O(logn)快排栈

解题思路三:0

python 复制代码

时间复杂度:O(n)

空间复杂度:O(n)

相关推荐
我的xiaodoujiao几秒前
Django 基础知识详细图文教程 1-Django 介绍
后端·python·学习·测试工具·django
TAN-90°-9 分钟前
Deep Learning for Computer Vision——Recurrent Neural Networks
数据结构·人工智能·rnn·深度学习·神经网络·机器学习·计算机视觉
wabs66615 分钟前
关于栈【力扣150.逆波兰表达式求值的思考】
数据结构·c++·算法·leetcode··代码随想录
ZGi.ai16 分钟前
ZGI 父子分块:连接检索片段与完整上下文
人工智能·算法·知识库·企业ai·zgi·父子分块
IT毕设实战小研21 分钟前
基于大数据的二手车数据分析与预测
java·大数据·后端·爬虫·python·算法·课程设计
Allen_LVyingbo24 分钟前
医疗AI可扩展网格信息系统中网格计算技术的智能优化
大数据·人工智能·python·算法·机器学习·django·健康医疗
MNLoser26 分钟前
AI agent开发——LangGraph接入持久化
linux·人工智能·windows·python
闻缺陷则喜何志丹32 分钟前
【计算几何 第10章】更多几何数据结构:截窗
数据结构·数学·线段树·计算几何·截窗·优先查找树·区间树
啦啦啦啦啦zzzz32 分钟前
升序链表的定时器
linux·服务器·网络·数据结构·c++·链表
WBluuue33 分钟前
数据结构与算法:带权并查集
数据结构·c++·算法