美文网首页
[LeetCode]57、插入区间

[LeetCode]57、插入区间

作者: 河海中最菜 | 来源:发表于2019-08-03 09:48 被阅读0次

题目描述

给出一个无重叠的 ,按照区间起始端点排序的区间列表。

在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

示例 1:

输入: intervals = [[1,3],[6,9]], newInterval = [2,5]
输出: [[1,5],[6,9]]
示例 2:

输入: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
输出: [[1,2],[3,10],[12,16]]
解释: 这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。

思路解析

1、因为之前就是有序的,正常的排列。所以只需要边遍历,边合并。
需要开辟一个新的空间.

class Solution(object):
    def insert(self, intervals, newInterval):
        """
        :type intervals: List[List[int]]
        :type newInterval: List[int]
        :rtype: List[List[int]]
        """
        if not intervals or len(intervals) == 0:
            return [newInterval]
        intervals.append(newInterval)
        intervals.sort(key=lambda x: x[0])

        res = [intervals[0]]
        for i in range(1, len(intervals)):
            # 满足更新之前结果后缀,否则,无需2修改后缀
            if intervals[i][0] <= res[-1][1] < intervals[i][1]:
                res[-1] = [res[-1][0], intervals[i][1]]
            elif intervals[i][0] > res[-1][1]:
                res.append(intervals[i])
        return res

相关文章

  • Leetcode 57 | 插入区间

    题目 Leetcode地址:57. 插入区间[https://leetcode.cn/problems/inser...

  • [LeetCode]57、插入区间

    题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍...

  • LeetCode - #57 插入区间

    前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。微博:@故胤...

  • leetcode_57 插入区间

    碎碎念,每次自己都钻牛角尖,相出来的解法打了n个补丁也过不了,有更好的思路但是想不到,还是换个思路更好,卑微看答案...

  • 区间合并算法

    0X00 区间合并 803. 区间合并 57. 插入区间

  • leetcode题目57. 插入区间

    题目描述 链接:https://leetcode-cn.com/problems/insert-interval/...

  • leetcode-day18-插入区间[57]

    思路:将新的数组和旧的数据取交集,分为三种情况,一是旧数组的数在新数组之前,二是在之后,三是有交集,有交集的话就取...

  • LeetCode 力扣 57. 插入区间

    题目描述(困难难度) 和上一道可以说是一个问题,只不过这个是给一个已经合并好的列表,然后给一个新的节点依据规则加入...

  • Python小白 Leetcode刷题历程 No.56-N

    Python小白 Leetcode刷题历程 No.56-No.60 合并区间、插入区间、最后一个单词的...

  • 57.插入区间

网友评论

      本文标题:[LeetCode]57、插入区间

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