医院系统网站建设,seo优化seo外包,wordpress 密码在哪文件夹,百度贴吧怎么做推广56. 合并区间
问题#xff1a;
以数组 intervals 表示若干个区间的集合#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间#xff0c;并返回 一个不重叠的区间数组#xff0c;该数组需恰好覆盖输入中的所有区间 。
示例 1#xff1a;输…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 intervals.length 104
intervals[i].length 2
0 starti endi 104解决
排序一次遍历
class Solution:def merge(self, intervals: List[List[int]]) - List[List[int]]:intervals.sort()ans[intervals[0]]for s,e in intervals:if ans[-1][1]s:ans.append([s,e]) ## 如果最后一个区间的右端点比新的左端点小那就代表不重合那就将新区间appendelse:ans[-1][-1]max(ans[-1][1],e) ## 否则就代表重合max更新端点return ans