Given an array of intervals where `intervals[i] = [start_i, end_i]`, merge overlapping intervals and return the merged intervals in sorted order. Example: Input: `intervals = [[1,3],[2,6],[8,10],[15,18]]` Output: `[[1,6],[8,10],[15,18]]` Explanation: The intervals `[1,3]` and `[2,6]` overlap, so they are merged into one interval `[1,6]`. Constraints: - `1 <= intervals.length <= 10^4` - `intervals[i].length == 2` - `0 <= start_i <= end_i <= 10^4`