Merge Intervals

Merge overlapping intervals into consolidated ranges, a classic algorithm for scheduling and resource allocation.

Code

Algorithms
arr = intervals.sort
merged = [arr[0]]
arr[1..].each do |interval|
  if interval[0] <= merged[-1][1]
    merged[-1][1] = [merged[-1][1], interval[1]].max
  else
    merged << interval
  end
end
return merged

Parameters

Array of [start, end] intervals

Server

More Ruby Snippets