CODE-0005 · gpt-5.4-mini (high)
from typing import List


def merge_intervals(intervals):
    """
    Merge overlapping or touching intervals.

    Args:
        intervals: An iterable of [start, end] pairs where start <= end.

    Returns:
        A new list of merged [start, end] pairs sorted by start.
    """
    if not intervals:
        return []

    sorted_intervals = sorted(intervals, key=lambda iv: (iv[0], iv[1]))
    merged = []

    for start, end in sorted_intervals:
        if not merged or start > merged[-1][1]:
            merged.append([start, end])
        else:
            if end > merged[-1][1]:
                merged[-1][1] = end

    return merged