徐州徐州网站建设,网页制作工具可以分为,帮客户做ppt什么的在哪个网站,做五金奖牌进什么网站文章目录 题目链接解题思路解题代码 题目链接
56. 合并区间
以数组 intervals 表示若干个区间的集合#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间#xff0c;并返回 一个不重叠的区间数组#xff0c;该数组需恰好覆盖输入中的所有区… 文章目录 题目链接解题思路解题代码 题目链接
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.初始化定义ret数组(作为返回值)、intervals做升序便于后续排序处理、将intervals[0]第一个数组提取出来分别做起始值及结束值 2.for i 循环遍历 intervals数组长度的值 2(1).当前i的起始值 大于 之前定义的end 2(2).保留之前起始值及结束值至ret数组里 2(3).当前i的起始值重新赋值给start 3.之前结束值及当前i的结束值取其最大值重新赋值给end 4.循环遍历结束将当前起始值及结束值保存至ret数组里
解题代码
class Solution:def merge(self, intervals):ret []intervals.sort()start,end intervals[0]for i in intervals:if i[0] end:ret.append([start,end])start i[0]end max(end, i[1])ret.append([start,end])return ret