Greedy Algorithms8 sections · 316 units
Open in Course

Merge Intervals - Implementation

The code

function merge(intervals)
 if length of intervals = 0 then
 return []
 sort intervals by start ascending
 result := [intervals[0]]
 for i from 1 to length of intervals - 1
 last := result[length of result - 1]
 if intervals[i].start <= last.end then
 last.end := max(last.end, intervals[i].end)
 else
 result.append(intervals[i])
 return result

Time: O(nlogn)O(n \log n). Space: O(n)O(n) for result.