方案:模拟这个合并的过程,当合并数组的末尾的第二个值大于等于intervals中下一个数组第一个值时,表示两者有共同区间,则修改合并数组末尾值,如果没有,直接添加intervals中下一个数组。
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
if(intervals.size()==0){
return {};
}
vector<vector<int>>ans;
sort(intervals.begin(),intervals.end());
for(int i=0;i<intervals.size();i++){
int L=intervals[i][0];
int R=intervals[i][1];
if(ans.size()==0||ans.back()[1]<L){
ans.push_back({L,R});
}
else{
ans.back()[1]=max(R,ans.back()[1]);
}
}
return ans;
}
};
来源:力扣(LeetCode)
载请注明出处。