欢乐力扣:合并区间

文章目录


1、题目描述

合并区间

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

2、思路

这里我参考题解。先将intervals按照左端点进行升序排序,固定住左边,然后遍历不断更新右边的区间即可。

代码

python 复制代码
class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        # step1: 将intervals里面的每个子list按照第一个元素进行升序排序
        intervals.sort(key=lambda x:x[0])
        # step2: 压入第一个区间
        ans = [intervals[0]]    
        for curlist in intervals[1:]:
            # case1: 若curlist的左端点在当前最后一个节点的中间
            # 则update右侧的较大值
            if curlist[0] >= ans[-1][0] and curlist[0] <= ans[-1][1]:
                ans[-1][1] = max(curlist[1], ans[-1][1])
            # case2: 若没有重合,则直接压入最终结果即可。 
            else:
                ans.append(curlist)
        return ans 
相关推荐
Tisfy12 分钟前
LeetCode 1039.多边形三角剖分的最低得分:记忆化搜索(深度优先搜索)
算法·leetcode·深度优先·记忆化搜索
YuTaoShao14 分钟前
【LeetCode 每日一题】1470. 重新排列数组——(解法一)构造数组
数据结构·算法·leetcode
宝耶33 分钟前
qqqqqqq
数据结构·算法·排序算法
bubiyoushang8881 小时前
雷达目标跟踪中扩展卡尔曼滤波(EKF)算法matlab实现
算法·matlab·目标跟踪
wefg12 小时前
【算法】分治
数据结构·算法·排序算法
想唱rap2 小时前
归并排序、计数排序以及各种排序稳定性总结
c语言·数据结构·笔记·算法·新浪微博
山,离天三尺三2 小时前
线程中互斥锁和读写锁相关区别应用示例
linux·c语言·开发语言·面试·职场和发展
芒果量化2 小时前
ML4T - 第7章第4节 线性回归统计 Linear Regression for Statistics
算法·机器学习·线性回归
敲代码的嘎仔4 小时前
牛客算法基础noob56 BFS
java·开发语言·数据结构·程序人生·算法·宽度优先
补三补四4 小时前
卡尔曼滤波
python·算法·机器学习·数据挖掘