题目
给出一个区间的集合,请合并所有重叠的区间。
示例 1:
输入: [[1,3], [2,6], [8,10], [15,18]]
输出: [[1,6], [8,10], [15,18]]
解释:** 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2:
输入: [[1,4], [4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
方案一(暴力法)
class Solution:def merge(self, intervals: List[List[int]]) -> List[List[int]]:'''按照 interval 的第一个元素进行升序排序,排序后的重叠区间一定的连续的'''intervals.sort()res = []i = 0while i < len(intervals):j = i + 1interval = intervals[i]while j < len(intervals):if interval[1] >= intervals[j][0]: # 需要合并interval = [interval[0], max(interval[1], intervals[j][1])]i += 1j += 1continuebreaki += 1res.append(interval)return res
- 将原数组排序后,需要合并的区间就是连续的
原文
https://leetcode-cn.com/explore/interview/card/2020-top-interview-questions/280/array/1253/
https://leetcode-cn.com/problems/merge-intervals/solution/he-bing-qu-jian-by-leetcode/
