leetcode: 57. Insert Interval

来源:互联网 发布:罗马2全面战争for mac 编辑:程序博客网 时间:2024/06/03 18:09

Q

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

AC

# Definition for an interval.class Interval(object):    def __init__(self, s=0, e=0):        self.start = s        self.end = eclass Solution(object):    def insert(self, intervals, newInterval):        """        :type intervals: List[Interval]        :type newInterval: Interval        :rtype: List[Interval]        """        i = 0        while i<len(intervals) and intervals[i].end<newInterval.start:            i+=1        j = i        while j<len(intervals) and intervals[j].start<=newInterval.end:            j+=1        if i<j:            newInterval.start = min(newInterval.start, intervals[i].start)            newInterval.end = max(newInterval.end, intervals[j-1].end)            del intervals[i:j]        intervals.insert(i, newInterval)        return intervals


原创粉丝点击