文巾解题 56. 合并区间

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文巾解题 56. 合并区间相关的知识,希望对你有一定的参考价值。

1 题目描述

2 解题思路

        先将intervals按照开始的时间从小到大排序,然后我们建立一个记录结果的数组,和另一个表示当前区间的临时区间,然后对intervals从前向后遍历。

        如果当前遍历的interval的开始点是在临时区间之内的,那么我们就考虑合并。否则,将临时区间写入记录结果的数组中,然后将当前区间赋值给临时区间

class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        if(len(intervals)<=1):
            return(intervals)
        f=lambda x:x[0]
        intervals.sort(key=f)
        ret=[]
        tmp=intervals[0]
        for i in intervals[1:]:
            if(i[0]<=tmp[-1]):
                tmp[-1]=max(i[1],tmp[-1])
            else:
                ret.append(tmp)
                tmp=i
        if(tmp!=None):
            ret.append(tmp)
        return(ret)

以上是关于文巾解题 56. 合并区间的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 56. 合并区间

Leetcode56. 合并区间(JAVA排序+双指针)

文巾解题 70. 爬楼梯

LeetCode 56. 56. Merge Intervals 20170508

文巾解题 183. 从不订购的客户

文巾解题 1816. 截断句子