Insert Intervals

题目描述

解题方法

Solution

# Definition for an interval.
# class Interval:
#     def __init__(self, s=0, e=0):
#         self.start = s
#         self.end = e

class Solution:
    # @param intervals, a list of Intervals
    # @param new_interval, a Interval
    # @return a list of Interval
    def insert(self, intervals, new_interval):
        result = []
        length = len(intervals)
        first = True
        for i in range(length):
            cur_interval = intervals[i]
            if cur_interval.end < new_interval.start:
                result.append(cur_interval)
            elif cur_interval.start > new_interval.end:
                if first:
                    result.append(new_interval)
                    first = False
                result.append(cur_interval)
            else:
                new_start = min(cur_interval.start, new_interval.start)
                new_end = max(cur_interval.end, new_interval.end)
                new_interval.start = new_start
                new_interval.end = new_end
        if first: # if new_interval is at the end
            result.append(new_interval)
        return result

Reference