区间合并
区间合并主要是用来处理有区间重叠问题的算法
例如:lc 56、lc 986
算法的关键点就是:按照区间的左端点排序,因此在排完序的列表中,可以合并的区间一定是连续的。在合并的过程中不断地去寻找有边界即可。
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(intervals.begin(), intervals.end());
vector<vector<int>> ans;
for (int i = 0; i < intervals.size();) {
int t = intervals[i][1];
int j = i + 1;
// 一直寻找合并的区间
while (j < intervals.size() && intervals[j][0] <= t) {
// 获取区间的最大值
t = max(t, intervals[j][1]);
j++;
}
ans.push_back({ intervals[i][0], t });
i = j;
}
return ans;
}