题解 | 合并区间

合并区间

https://www.nowcoder.com/practice/69f4e5b7ad284a478777cb2a17fb5e6a

class Solution:
    def merge(self , intervals: List[Interval]) -> List[Interval]:
        # write code here
        res=[]
        intervals.sort(key=lambda x:x.start)
        for i in range(len(intervals)):
            if not res or intervals[i].start>res[-1].end:
                res.append(intervals[i])
            else:
                res[-1].end=max(intervals[i].end,res[-1].end)
        return res

思路:

  1. 将列表按开始位置排序
  2. 新建结果列表。
  3. 遍历原列表中的区间。如果区间的开头小于等于结果列表最新区间的结尾,说明两者是包含关系,需要合并。合并就是取两个区间的结尾最大值作为新结尾。(画图更清晰)
  4. 否则说明当前列表不需要合并,直接添加到结果列表中。

全部评论

相关推荐

程序员花海_:抓紧时间去找实习 项目其实只是玩具项目 脱离业务很远的
点赞 评论 收藏
分享
2025-12-15 12:50
河北工程大学
sta666:我也是这个国际商业化的,三天,一天一面,就通过了,不过我是后端实习生,好好面感觉能过。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务