Leet Code OJ 57. Insert Interval [Difficulty: Hard] -python

23 篇文章 0 订阅
21 篇文章 0 订阅

57. Insert Interval

[Hard]

Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).

You may assume that the intervals were initially sorted according to their start times.

Example 1:

Input: intervals = [[1,3],[6,9]], newInterval = [2,5]
Output: [[1,5],[6,9]]

Example 2:

Input: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
Output: [[1,2],[3,10],[12,16]]
Explanation: Because the new interval [4,8] overlaps with [3,5],[6,7],[8,10].

NOTE: input types have been changed on April 15, 2019. Please reset to default code definition to get new method signature.

题意:插入区间

思路:在上一题的基础上将需要插图的区间add进列表就行

上一题:56:https://blog.csdn.net/sinat_37341950/article/details/108256045

代码:

#57
class Solution:
    def insert(self, intervals,newInterval):
        
        
        
        new_list = []
        intervals.append(newInterval)
        if len(intervals)==1 or len(intervals)==0:
            return intervals
        intervals.sort()
        new_list.append([intervals[0][0],intervals[0][1]])
        j = 0
        for i in range(1,len(intervals)):
            if new_list[j][1] >= intervals[i][0]:
                new_list.append([min(new_list[j][0],intervals[i][0]),max(new_list[j][1],intervals[i][1])])
                del new_list[-2]
            else:
                new_list.append([intervals[i][0],intervals[i][1]])
                j = j + 1
        return new_list
        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值