leetcode 每日一题 56. 合并区间
排序合并
思路:
用数组res记录合并结果,先把数组intervals排序,遍历数组intervals,如果res为空或者遍历的区间左边界比res中最后一个区间的右边界值大,则将遍历的区间添加到结果中,如果遍历的区间左边界比res最后一个区间的右边界值小,则更新res最后一个区间的右边界的值。
代码:
class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: intervals.sort(key=lambda x: x[0]) res = [] for interval in intervals: if not res or res[-1][1] < interval[0]: res.append(interval) else: res[-1][1] = max(res[-1][1], interval[1]) return res