讲这道题之前,先介绍一下sort函数的骚操作。
sort函数可以用于二维数组的排序!!!
解释:
这里sort函数也是从小到大进行排序,只不过它的排序对象是对每对序列的第一个数进行排序的
结果:

知道sort这种用法后,那么解决这道题就会变得非常容易!!!


分析:要进行区间的合并,必须满足以下两个条件:
(我们令可以合并的两个区间分别为x区间和y区间,x.0:x区间的起点,x.1:x区间的尾点)
所具备的条件为:1: 2:
代码:
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>>ans;
sort(intervals. begin(),intervals. end());
/*使区间由起点进行排序,这样以来,相邻的两个区间就具有可合并的可能*/
int j=0;
ans.push_back(intervals[0]);
for(int i=1;i<intervals. size();i++){
if(ans[j][1]>=intervals[i][0]){
if(ans[j][1]<intervals[i][1]) ans[j][1]=intervals[i][1];
}
else ans.push_back(intervals[i]),j++;
}
return ans;
}
};
文章介绍了在LeetCode的56题中,如何利用sort函数对二维数组(区间)进行排序,从而实现区间合并。通过对每个区间起点排序,可以简化合并过程。代码示例展示了一种解决方案,遍历排序后的区间,合并相邻的重叠区间。

被折叠的 条评论
为什么被折叠?



