微网站建设包含哪些内容,网站建设服务联享科技,wordpress 作者推荐,微商城免费开通题目#xff1a; 以数组 intervals 表示若干个区间的集合#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间#xff0c;并返回 一个不重叠的区间数组#xff0c;该数组需恰好覆盖输入中的所有区间 。 来源#xff1a;力扣#xff08;Lee… 题目 以数组 intervals 表示若干个区间的集合其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间并返回 一个不重叠的区间数组该数组需恰好覆盖输入中的所有区间 。 来源力扣LeetCode 链接力扣 示例 示例 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] 可被视为重叠区间。 解法 首先根据左区间对所有区间升序排序创建result存放结果设left、right为-1表示存进result的左右区间。接着遍历区间如果当前左区间大于right说明相邻区间没有交集因为排过序和后面区间也不可能有交集所以把当前区间存入result修改left、right为当前区间值。如果当前左区间小于等于right说明前后区间有交集因为排过序left不用变right更新为大的那个然后修改result中最后一个区间为[left,right]。 知识点 1.list.sortlambdasort() 方法的 key 参数可以用来指定一个用于排序的函数可以和lambda联动比如my_list [(3, 5), (1, 2), (2, 6), (4, 1), (5, 5)]my_list.sort(keylambdax: x[1])表示根据元组中第2个值的大小排序。 代码 class Solution:def merge(self, intervals: List[List[int]]) - List[List[int]]:result []intervals.sort(keylambda x: x[0])left right -1for interval in intervals:if interval[0] right:right interval[1] if interval[1] right else rightresult[-1] [left, right]else:result.append(interval)left, right intervalreturn result