# class Interval: # def __init__(self, a=0, b=0): # self.start = a # self.end = b # # # @param intervals Interval类一维数组 # @return Interval类一维数组 # class Solution: def merge(self , intervals ): intervals = sorted(intervals,key=lambda x:x.start) res = [] #存储最后的结果 i, n = 0, len(intervals) while i <= n - 1: l = intervals[i].start r = intervals[i].end while i < n-1 and r >= intervals[i+1].start: i = i + 1 r = max(r, intervals[i].end) res.append(Interval(l, r)) i = i+1 return res # write code here
给出一组区间,请合并所有重叠的区间。
请保证合并后的区间按区间起点升序排列
解题思路:
对左边界排序,如果下一个区间的左边界在前一个的有边界内,考虑是否要更新边界,如果如果下一个区间的左边界在前一个的有边界外,说明区间无法合并,开始计算下一个区间