#include<bits/stdc++.h>  
using namespace std;  
typedef long long int64;  
  
class Solution {  
public:  
    static vector<vector<int>> merge(vector<vector<int>>& intervals) {  
        /*  
        输入:intervals = [[1,3],[2,6],[8,10],[15,18]]  
        输出:[[1,6],[8,10],[15,18]]  
        解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].         
        */
        ranges::sort(intervals);  
        vector<vector<int>> merged; // 已合并的区间  
        for (auto &it:  intervals) {  
            if (merged.empty()) {   // 第一个区间直接添加  
                merged.push_back( it);  
                continue;  
            }  
            auto &last = merged.back();  
            if (it.front() <= last.back()) {  
                // 合并的情况  
                last.back() = max(last.back(), it.back());  
            } else {  
                // 合并不了,添加  
                merged.push_back(it);  
            }  
        }  
        return merged;  
    }  
};  
  /*
int main() {  
    Solution s;  
    vector<vector<int>> intervals = {{1,3},{1,2},{2,6},{8,10},{15,18}};  
  
    // auto &it = intervals.back();  
    // it.back() = 1;  
    vector<vector<int>> res = s.merge(intervals);  
    for (auto& v : res) {  
        cout << v[0] << " " << v[1] << endl;  
    }  
    return 0;  
}*/

本站由 Rizxfrog 使用 Stellar 创建。