CP

56. Merge Intervals

MetricComplexityReason
Time ComplexityO(nlogn)O(n \log n)Sorting dominates
Space ComplexityO(n)O(n)Result array stores all intervals
class Solution:
    def merge(self, I: List[List[int]]) -> List[List[int]]:
        I.sort()
        result = [I[0]]

        for s, e in I:
            ps, pe = result[-1]
            if s <= pe:
                result[-1][1] = max(e, pe)
            else:
                result.append([s, e])

        return result