Python, LintCode, 156. 合并区间

"""
Definition of Interval.
class Interval(object):
    def __init__(self, start, end):
        self.start = start
        self.end = end
"""

class Solution:
    """
    @param intervals: interval list.
    @return: A new interval list.
    """
    def merge(self, intervals):
        # write your code here
        intervals.sort(key = lambda interval_tmp: interval_tmp.start)  
        N = len(intervals)
        res = []
        for i in range(N):
            flag = 0
            for j in range(len(res)):
                if not (intervals[i].start > res[j].end or intervals[i].end < res[j].start):
                    res[j].start = min(intervals[i].start, res[j].start)
                    res[j].end = max(intervals[i].end, res[j].end)
                    flag = 1
                    break
            if flag == 0:
                res.append(intervals[i])
        return res

猜你喜欢

转载自blog.csdn.net/u010342040/article/details/80356158