温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

LeetCode如何解决合并区间问题

发布时间:2021-12-15 11:19:43 来源:亿速云 阅读:148 作者:小新 栏目:大数据

小编给大家分享一下LeetCode如何解决合并区间问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!


题目描述:

“给定一个区间,合并重叠的部分(输入区间并没有按顺序)”


例如:

输入:[[1, 3], [2, 6], [8, 10], [15, 18]]输出:[[1, 6], [8, 10], [15, 18]]
     
输入:[[1, 4], [0, 0]]输出:[[0, 0], [1, 4]]

第一次尝试

1. 首先要将输入的二维数组按照第一个元素的大小排序,这样才能进行后面的判断

2. 设置一个最终返回的数组:final_list = []

3. 设置一个游标数组(二维数组里面的那一层):final_interval=intervals[0]

    直接将其设置成排序后的输入数组的第一个数组元素,然后依次比较

final_interval与输入二维数组中的数组依次比较:

  • final_interval的右端点 >= 比较数组的左端点:有重叠的地方

    (1)final_interval右端点取两者右端点中大的

    (2)final_interval左端点取两者左端点中小的

  • 无重叠:

    将final_interval添加到final_list中,并将final_interval设置成下一个数组

LeetCode如何解决合并区间问题

LeetCode如何解决合并区间问题

LeetCode如何解决合并区间问题  



 


代码美化一下


  • 可以去掉右端点等于左端点的if判断(可以不用)

  • 利用内置函数max、min取大的端点和小的端点

LeetCode如何解决合并区间问题

小结

  • 任何题目要先判断一下输入空的情况

  • 二维数组利用数组的append(数组)实现

  • 数组排序时利用了匿名函数

intervals.sort(key=lambda x: x[0])

看完了这篇文章,相信你对“LeetCode如何解决合并区间问题”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI