您的位置:首页 > 其它

leetcode.array--57. Insert Interval

2017-10-17 22:12 323 查看
题目:57. Insert Interval

题目链接:https://leetcode.com/problems/insert-interval/description/

这个题呀跟上一个差不多,题目给定了若干个区间,这些区间已经按照start升序排序,要求呢将给出的新区间插进去,返回新区间插入合并的结果。

因为已经排好序了嘛,应该是分情况讨论+遍历吧。但是我把上个题的代码复制过来了,没有重新写


Python:

# Definition for an interval.
# class Interval(object):
# def __init__(self, s=0, e=0):
# self.start = s
# self.end = e
from operator import attrgetter
class Solution(object):
def insert(self, intervals, newInterval):
"""
:type intervals: List[Interval]
:type newInterval: Interval
:rtype: List[Interval]
"""
def merge(intervals):
length = len(intervals)
if length == 0:
return []
if length < 2:
return [intervals[0]]
intervals.sort(key=attrgetter("start"))
res = []
res.append(intervals[0])
rear = 0
for i in range(1, length):
if intervals[i].start <= res[rear].end:
if intervals[i].end > res[rear].end:
res[rear].end = intervals[i].end
else:
res.append(intervals[i])
rear += 1
return res
intervals.append(newInterval)
return merge(intervals)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode array