Merge Intervals

Problem: Merge Intervals

First, we sort all the intervals by their starting time. Then we scan from the first interval till the last. Once we find an interval starts before previous one's ending time, we merge these two intervals.

Code in Python:

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

class Solution(object):
    def merge(self, intervals):
        """
        :type intervals: List[Interval]
        :rtype: List[Interval]
        """
        if not intervals: return []
        tmp = sorted(intervals, key=lambda interval: interval.start)
        ans = [tmp[0]]
        for interval in tmp[1::]:
            if interval.start <= ans[-1].end: ans[-1].end = max(ans[-1].end, interval.end)
            else: ans.append(interval)
        return ans

results matching ""

    No results matching ""