欢迎光临
我们一直在努力

整合区间

"""
整合区间
给定一个数组,表示若干个区间的集合。
其中,数组中每个元素为一个区间。
合并所有重叠的区间,
返回一个不重叠的区间数组,
该数组需恰好覆盖输入中的所有区间。
"""

def merge(intervals):
    """
    合并重叠的区间。

    参数:
    intervals: 一个二维列表,其中每个元素是一个包含两个整数的列表,表示一个区间。

    返回:
    一个二维列表,包含所有不重叠的区间。

    方法:
    1. 对输入的区间按照起始位置进行排序。
    2. 遍历排序后的区间列表,如果当前区间的起始位置小于等于前一个区间的结束位置,则将两个区间合并。
    3. 如果当前区间的起始位置大于前一个区间的结束位置,则将当前区间加入结果列表。
    """
    # 根据区间的起始位置对区间进行排序
    intervals.sort(key=lambda x: x[0])
    # 初始化结果列表
    res = []
    # 遍历排序后的区间列表
    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

if __name__ == '__main__':
    # 初始化一个测试用的区间列表
    intervals = [[1, 3], [2, 6], [8, 10], [15, 18]]
    # 调用merge函数合并区间,并打印结果
    print(merge(intervals))
赞(0) 打赏
未经允许不得转载:创想未来 » 整合区间

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册