Merge Intervals
Given an array intervals representing a collection of intervals, where each interval is intervals[i] = [start, end], write a function to merge all overlapping intervals and return an array of the non-overlapping intervals that cover all the intervals in the input.
Example:
Input: intervals = [[1,3],[2,6],[8,10]]
Output: [[1,6],[8,10]]
Explanation: The intervals [1,3] and [2,6] overlap, so they are merged into [1,6].
Input: intervals = [[1,4],[4,5]]
Output: [[1,5]]
这道题是经典的区间合并问题。做法通常是先按照区间起点排序,然后遍历每个区间,维护当前合并后的最后一个区间:如果下一个区间与它重叠,就更新右边界为更大的结束值;如果不重叠,就把当前区间加入结果并切换到新的区间。核心数据结构是数组,关键思想是排序后线性扫描,时间复杂度为 O(n log n),空间复杂度通常为 O(n)(不计排序实现)。