Standard coding question for SWE, less common for SRE.
Given a list of integer intervals, merge all overlapping intervals and return the resulting non-overlapping intervals sorted by start time. Implement merge_intervals(intervals), where each interval is represented as [start, end].
The input is a list of intervals. Return a new list containing merged intervals. Intervals that only touch, such as [1, 3] and [3, 5], are considered overlapping.
def merge_intervals(intervals):