个人思路总结:
对第一位进行排序,然后根据第二位的大小关系合并。
这里在排序时需要注意一下,因为不能直接调用STL中的sort函数,需要自定义比较函数cmp。
代码如下:
class Solution {
public:
vector<vector<int>> result;
vector<vector<int>> merge(vector<vector<int>>& intervals) {
if(intervals.size()==0)
return result;
sort(intervals.begin(),intervals.end(),cmp);
result.push_back(intervals[0]);
for(int i=1;i<intervals.size();i++)
{
if(intervals[i][0]<=result[result.size()-1][1])
{
result[result.size()-1][1] = max(result[result.size()-1][1], intervals[i][1]);
}
else
result.push_back(intervals[i]);
}
return result;
}
static bool cmp(vector<int> a, vector<int> b) //注意在类里面需要加static成静态函数,类外的话则不需要加static
{
return a[0]<b[0];
}
};