合并区间 - lifengyu360/lifengyu_first_git_test GitHub Wiki

class Solution {

public:

vector<vector<int>> merge(vector<vector<int>>& intervals) {

    if (intervals.size() == 0) {
        return {};
    }

    //sort排序一个数组 元素就是一个集合 这样也可以====
    sort(intervals.begin(), intervals.end());
    vector<vector<int>> merged;
    for (int i = 0; i < intervals.size(); ++i) {
        int L = intervals[i][0], R = intervals[i][1];
        //当merge是空 或者merge的最后一个元素的右边界 < i的左边界 说明两个区间没有交集 添加到合并列表中
        if (!merged.size() || merged.back()[1] < L) {
            merged.push_back({L, R});
        }else {
            //因为前面已经排序了  merge的最后一个元组的右边界更新成最新的 需要比较i元素的右边界的值大小  
            //因为有可能i这个元素被包含 比如最后一个元素[4,9]  i是 [5,7]情况
            merged.back()[1] = max(merged.back()[1], R);
        }
    }
    return merged;
}

};

⚠️ **GitHub.com Fallback** ⚠️