Merge Intervals

Given a list of intervals with a start and end value, merge the intervals. Tags: Sorting

Try It!

Discussion

Video

Solution

class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        ans = []
        if len(intervals) < 2:
            return intervals
        intervals.sort(key=lambda x: x[0])
        
        cur = intervals[0]
        
        for i in range(len(intervals)):
            interval = intervals[i]
            if cur[1] >= interval[0]:
                cur[1] = max(cur[1], interval[1])
            else:
                ans.append(cur)
                cur = interval
        ans.append(cur)
        return ans