示例1输入[[10,30],[20,60],[80,100],[150,180]]输出[[10,60],[80,100],[150,180]]示例2输入[[0,10],[10,20]]输出[[0,20]]# class Interval:# def __init__(self, a=0, b=0):# self.start = a# self.end = b## 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可## 华为#val类一维数组 # @return Interval类一维数组#class Solution: def merge(self , intervals: List[Interval]) -> List[Interval]: # write code here if not intervals or len(intervals)<=1: return intervals # 按区间的起点升序排序 intervals.sort(key=lambda x: x.start) merge = [] current_start,current_end = intervals[0].start,intervals[0].end for interval in intervals[1:]: if current_end >= interval.start: current_end = max(current_end,interval.end) else: merge.append(Interval(current_start,current_end)) current_start,current_end = interval.start,interval.end merge.append(Interval(current_start,current_end)) return merge