leetcode-华为专题-56. 合并区间

 

leetcode-华为专题-56. 合并区间

 

class Solution {
public:
    static bool cmp(vector<int> &a, vector<int> &b){
        // if(a[0]!=b[0])
            return a[0]<b[0];
        // else 
        //     return a[1]<b[1];
    }
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>> res;
        
        sort(intervals.begin(), intervals.end(),cmp);

        vector<int> temp;
        
        temp.push_back(intervals[0][0]);
        temp.push_back(intervals[0][1]);
        for(int j = 1; j < intervals.size(); j++){
            if(intervals[j][0]<=temp[1]){  // 可以加入区间
                if(intervals[j][1]>temp[1])  // 如果当前元素右边界大于当前区间的右边界
                    temp[1] = intervals[j][1]; // 更新右边界
            }else{
                res.push_back(temp);
                temp[0] = intervals[j][0];
                temp[1] = intervals[j][1];
            }
        }
        res.push_back(temp);
        return res;
    }
};

 

上一篇:leetcode56. 合并区间


下一篇:合并区间_数组_中等