class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
ans = []
for interval in sorted(intervals, key = lambda x: x[0]):
if len(ans) == 0 or ans[-1][1] < interval[0]:
ans.append(interval)
else:
ans[-1][1] = max(ans[-1][1], interval[1])
return ans
Time complexity is O(nlogn): sorted(). Space complexity is O(1).