题目:

思路:

  1. 按每一个区间的左边界进行排序
  2. 比较当前区间的左边界跟ans中最后一个区间的右边界进行比较
    1. 若大于,则直接插入ans
    2. 不然,比较当前区间的右边界和ans中最后一个区间的右边界,取大的,合并后插入ans

代码:

class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        intervals.sort(key=lambda x:x[0])#排序 
        ans = []
        for interval in intervals:
            if not ans or ans[-1][1]<interval[0]:
                ans.append(interval)
            else:
                ans[-1][1] = max(ans[-1][1],interval[1])
        return ans

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐