class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
intervals.sort(key = lambda x: x[0])
res = []
left, right = intervals[0][0], intervals[0][1]
for interv in intervals[1:]:
# 1. left2 > right1
if interv[0] >right:
res.append([left, right])
left, right = interv[0], interv[1]
# 2. left2 < right1
else:
right = max(interv[1],right)
res.append([left,right])
return res