This question asks us to merge intervals. We first sort them so we can iterate through them in pairwise order (having a current + next) and choosing whether or not to merge them. At the end we return that result.

class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        intervals.sort()
        merged = [intervals[0]]
        for r_start, r_end in intervals[1:]:
            l_start, l_end = merged[-1]
            if l_end >= r_start:
                merged[-1] = [l_start, max(l_end, r_end)]
            else:
                merged.append([r_start, r_end])
        return merged