首页 > 编程语言 > 详细

[LeetCode]题解(python):057-Insert Interval

时间:2015-12-28 23:34:17      阅读:428      评论:0      收藏:0      [点我收藏+]

题目来源


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         

 

[LeetCode]题解(python):057-Insert Interval

原文:http://www.cnblogs.com/loadofleaf/p/5084275.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!