给出一个区间的集合,请合并所有重叠的区间。

    1. 示例 1:
    2. 输入: [[1,3],[2,6],[8,10],[15,18]]
    3. 输出: [[1,6],[8,10],[15,18]]
    4. 解释: 区间 [1,3] [2,6] 重叠, 将它们合并为 [1,6].

    链接

    1. class Solution {
    2. public:
    3. vector<vector<int>> merge(vector<vector<int>>& intervals) {
    4. sort(intervals.begin(), intervals.end());
    5. vector<vector<int>> res;
    6. for (int i = 0; i < intervals.size();) {
    7. int t = intervals[i][1];
    8. int j = i + 1;
    9. while (j < intervals.size() && intervals[j][0] <= t) {
    10. t = max(t, intervals[j][1]);
    11. j++;
    12. }
    13. res.push_back({intervals[i][0], t});
    14. i = j;
    15. }
    16. return res;
    17. }
    18. };