美文网首页
排序(1)

排序(1)

作者: 微斯人_吾谁与归 | 来源:发表于2019-07-09 19:21 被阅读0次

    题目:

    给出一个区间的集合,请合并所有重叠的区间。

    示例 1:

    输入: [[1,3],[2,6],[8,10],[15,18]]
    输出: [[1,6],[8,10],[15,18]]
    解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

    示例 2:

    输入: [[1,4],[4,5]]
    输出: [[1,5]]
    解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。

    解答:

    `

    def merge(self, intervals): 
        intervals = sorted(intervals,key=lambda x:x[1])
        for i in range(len(intervals)-1,0,-1):
            if intervals[i][0]<=intervals[i-1][1]:
                intervals[i-1][1] =max(intervals[i][1],intervals[i-1][1])
                intervals[i-1][0] =min(intervals[i][0],intervals[i-1][0])           
                intervals.pop(i) 
        return intervals
    

    `

    反思:

    在合并的过程中改变了数组,考虑从后向前,比较方便。

    相关文章

      网友评论

          本文标题:排序(1)

          本文链接:https://www.haomeiwen.com/subject/aeiuaqtx.html