Interview Guides

Given an array of intervals intervals, where each interval is a two-element array [start, end], merge all overlapping intervals and return a new array of non-overlapping intervals sorted by their start time. Each returned interval should cover the full range of all intervals merged into it.
1 <= intervals.length <= 10^4intervals[i].length == 20 <= start <= end <= 10^4