Question
在 Leetcode 下做一道题。
Answer
'''
LeetCode
Topic: Array
57. Insert Interval
Description:
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].
'''
# Definition for an interval.
# class Interval:
# def __init__(self, s=0, e=0):
# self.start = s
# self.end = e
class Solution:
'''
type intervals : List[Interval]
type newInterval: Interval
return type : List[Interval]
'''
def insert(self, intervals, newInterval):
intervals.append(newInterval)
intervals.sort(key = lambda x : x.start)
length = len(intervals)
res = []
for i in range(length):
if res == []:
res.append(intervals[i])
else:
size = len(res)
if res[size - 1].start <= intervals[i].start <= res[size - 1].end:
res[size - 1].end = max(intervals[i].end, res[size - 1].end)
else:
res.append(intervals[i])
return res
结果:
![](https://i-blog.csdnimg.cn/blog_migrate/1c31b36f8e2dc3130243de6ea7e59702.png)