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