zoukankan      html  css  js  c++  java
  • [LeetCode]题解(python):057-Insert Interval


    题目来源


    https://leetcode.com/problems/insert-interval/

    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].


    题意分析


    Input:a list of intervals and a new interval

    Output:insert the new interval into the list and merge if necessary

    Conditions:将新的interval插入进去,如果需要合并则合并


    题目思路


    感觉跟merge interval很像,所以直接append list中,然后排序按照上一题merge的方法,然后过了……


    AC代码(Python)


     1 # Definition for an interval.
     2 # class Interval(object):
     3 #     def __init__(self, s=0, e=0):
     4 #         self.start = s
     5 #         self.end = e
     6 
     7 class Solution(object):
     8     def insert(self, intervals, newInterval):
     9         """
    10         :type intervals: List[Interval]
    11         :type newInterval: Interval
    12         :rtype: List[Interval]
    13         """
    14         intervals.append(newInterval)
    15         intervals.sort(key = lambda x:x.start)
    16         
    17         length = len(intervals)
    18         res = []
    19         
    20         if length == 0:
    21             res.append(newInterval)
    22             return res
    23         
    24         res.append(intervals[0])
    25         for i in range(1,length):
    26             size = len(res)
    27             if res[size - 1].start <= intervals[i].start <= res[size - 1].end:
    28                 res[size - 1].end = max(intervals[i].end, res[size - 1].end)
    29             else:
    30                 res.append(intervals[i])
    31         
    32         return res
    33         
  • 相关阅读:
    配置Domino CA以支持SSL
    如何在Notes中撰寫JavaServlet程式
    Lotus 技术点之导入
    Lotus Domino R5开发心得
    Domino中用可定制表单显示定制的错误消息
    ExtJs GridPanel 完整实例
    当程序员变成软件项目经理
    SQL Server 索引结构及其使用
    C#事务处理
    on用onpropertychange,oninput事件解决onchange事件的不足
  • 原文地址:https://www.cnblogs.com/loadofleaf/p/5084275.html
Copyright © 2011-2022 走看看