来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-intervals/
题目:
解法:
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
if (!intervals.size()) return {};
sort(intervals.begin(), intervals.end());
vector<vector<int>> outputs;
outputs.push_back(intervals[0]);
for (int i = 1; i < intervals.size(); i++) {
vector<int> lastInterval = outputs.back();
int currLeft = intervals[i][0];
int currRight = intervals[i][1];
if (lastInterval[1] < currLeft) {
outputs.push_back(intervals[i]);
} else {
// 这里需要注意:不能是 lastInterval[1] = ...
outputs.back()[1] = max(lastInterval[1], currRight);
}
}
return outputs;
}
};