资讯专栏INFORMATION COLUMN

leetcode--57--Insert Interval

kycool / 2054人阅读

摘要:问题描述分析这道题的关键在于理解问题,抽取原型,理解中间可以部分如何界定,以及非部分如何进行追加。需要注意的是循环到最后一个元素和在最后一个元素的区别。

问题描述:

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:

Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9].

Example 2:

Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] in as
[1,2],[3,10],[12,16].

This is because the new interval [4,9] overlaps with
[3,5],[6,7],[8,10].

class Solution(object):
    def insert(self, intervals, newInterval):
        """
        :type intervals: List[Interval]
        :type newInterval: Interval
        :rtype: List[Interval]
        """
        start=newInterval.start
        end=newInterval.end
        # print("start,end",start,end)
        outs=list()
        index=0
        flag_break=0
        for index,interval in enumerate(intervals):
            if interval.end>=start:
                if interval.start>end:
                    flag_break=1
                    break
                else:
                    start=min(start,interval.start)
                    end=max(end,interval.end)
                    # print("start,end:", start, end)

            else:
                outs.append(interval)
        outs.append(Interval(start,end))
        if flag_break:
            outs.extend(intervals[index:])
        # print(outs)
        outs_num=[ (out.start,out.end) for out in outs]
        return outs_num

分析:这道题的关键在于理解问题,抽取原型,理解中间可以merge部分如何界定,以及非merge部分如何进行追加list。 需要注意的是:循环到最后一个元素和在最后一个元素break的区别。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44596.html

相关文章

  • leetcode57. Insert Interval

    摘要:题目要求给定一组顺序排列且相互之间没有重叠的区间,输入一个区间,将它插入到当前的区间数组中,并且将需要合并的区间合并,之后返回插入并且合并后的区间。我们将这三个类型的区间分别标注为类型,类型,类型。 题目要求 Given a set of non-overlapping intervals, insert a new interval into the intervals (merge...

    Yuanf 评论0 收藏0
  • [Leetcode] Merge Intervals and Insert Interval 合并间

    摘要:我们只要把所有和该有重叠的合并到一起就行了。最后把前半部分的列表,合并后的大和后半部分的列表连起来,就是结果了。 Merge Intervals 最新更新请见 https://yanjia.me/zh/2019/02/... Given a collection of intervals, merge all overlapping intervals.For example, Gi...

    antyiwei 评论0 收藏0
  • leetcode436. Find Right Interval

    摘要:题目要求假设一个二维的整数数组中每一行表示一个区间,每一行的第一个值表示区间的左边界,第二个值表示区间的右边界。 题目要求 Given a set of intervals, for each of the interval i, check if there exists an interval j whose start point is bigger than or equal ...

    robin 评论0 收藏0
  • 数据集:大学毕业生收入

    摘要:数据集大学毕业生收入下载地址,本文以绘制直方图为主。整型全年全职在岗人数。浮点型收入的百分位数。各大类专业就业率图示结论相对来说,由于计算机的发展前景,计算机与数学类的就业率较高。 ...

    Aklman 评论0 收藏0
  • 谈谈我对js中定时器的一点理解

    摘要:这两个函数接受定时器的例如我们上面提到的两个函数产生的定时器,并停止对定时器中指定函数的调用。注意,定时器虽然触发了,但是并不会立即执行,它只是把需要延迟执行的函数加入了执行队列,在线程的某一个可用的时间点,这个函数就能够得到执行。 撸了今年阿里、头条和美团的面试,我有一个重要发现....... javascript定时器工作原理是一个重要的基础知识点。因为定时器在单线程中工作,它们表...

    frontoldman 评论0 收藏0

发表评论

0条评论

kycool

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<