56. Merge Intervals

Given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.


Notes:
- No need to have a separate variable to hold the current interval
- Touching intervals are merged


def merge(intervals):
       
    if not intervals:
        return []
   
    intervals.sort(key = lambda x: x[0])
   
    merged = []
   
    for interval in intervals:
       
        if not merged or interval[0] > merged[-1][1]:
            merged.append(interval)
        else:
            merged[-1][1] = max(merged[-1][1], interval[1])
           
   
    return merged

Comments

Popular posts from this blog

849. Maximize Distance to Closest Person

347. Top K Frequent Elements

139. Word Break