56. 合并区间

自己做

解:排序合并
class Solution {
public:static bool compare(const vector<int> &p1, const vector<int> &p2){ //按第一个数排序return p1[0] < p2[0]; }vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> res;sort(intervals.begin(), intervals.end(), compare); //排序区间res.push_back(intervals[0]);for(int i = 1; i < (int)intervals.size(); i++){ //遍历区间数组if(res[(int)res.size() - 1][1] >= intervals[i][0]){ //合并if(res[(int)res.size() - 1][1] < intervals[i][1]) //检查与合并对象是否为包含关系res[(int)res.size() - 1][1] = intervals[i][1]; //不为包含关系,更新区间,如果为包含关系(前者包含后者),不更新区间}elseres.push_back(intervals[i]);}return res;}
};
