leetcode 每日一题 57. 插入区间

Posted nil_f

tags:

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

遍历添加

思路:

由于原数组有序,可以遍历把要添加区间之前的区间先加入到结果中,在判断要添加的区间是否能和之前合并,接着继续遍历之后区间,如果能合并就合并区间,不能合并直接添加。合并区间方法,参考56.合并区间

 

代码:

class Solution:
    def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:
        new_start, new_end = newInterval[0],newInterval[1]
        idx, n = 0, len(intervals)
        res = []
        while idx < n and new_start > intervals[idx][0]:
            res.append(intervals[idx])
            idx += 1
        if not res or res[-1][1] < new_start:
            res.append(newInterval)
        else:
            res[-1][1] = max(res[-1][1], new_end)
        while idx < n:
            interval = intervals[idx]
            start, end = interval[0],interval[1]
            idx += 1
            if res[-1][1] < start:
                res.append(interval)
            else:
                res[-1][1] = max(res[-1][1], end)
        return res

 

以上是关于leetcode 每日一题 57. 插入区间的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 57. 插入区间

leetcode 每日一题 56. 合并区间

leetcode 每日一题 56. 合并区间

《LeetCode之每日一题》:205.合并区间

《LeetCode之每日一题》:243.汇总区间

LeetCode 1024. 视频拼接(每日一题)