这个C++代码实现了一个名为Solution的类,其中有一个公共成员函数merge,该函数接收一个二维整数向量(表示一系列闭区间),并返回一个新的二维整数向量,其中包含所有已合并的不重叠区间。
// 定义一个名为Solution的类
class Solution {
public:
// 定义一个成员函数merge,输入为一个二维整数向量引用,输出为一个二维整数向量
vector<vector<int>> merge(vector<vector<int>>& intervals) {
// 初始化一个用于存放合并后区间的二维向量result
vector<vector<int>> result;
// 如果输入的区间集合为空,则直接返回空结果集
if (intervals.size() == 0) return result;
// 使用lambda表达式对区间集合按起始坐标升序排序
sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>& b){
return a[0] < b[0];
});
// 将排序后的第一个区间加入到结果集中
result.push_back(intervals[0]);
// 遍历区间集合,从第二个区间开始检查是否与结果集中的最后一个区间重叠
for (int i = 1; i < intervals.size(); i++) {
// 检查当前区间是否与结果集中的最后一个区间重叠(即当前区间的起始坐标小于等于结果集中最后一个区间的结束坐标)
if (result.back()[1] >= intervals[i][0]) {
// 若重叠,则合并区间,将结果集中最后一个区间的结束坐标更新为两区间结束坐标的较大值
result.back()[1] = max(result.back()[1], intervals[i][1]);
} else {
// 若不重叠,则直接将当前区间加入到结果集中
result.push_back(intervals[i]);
}
}
// 返回合并后且无重叠的区间集合
return result;
}
};
此函数的主要功能是合并给定的一系列区间,使得合并后区间集合中任意两个区间互不重叠。通过先对区间进行排序,然后遍历区间集合,根据起始和结束坐标判断并合并重叠区间来实现这一目标。