您的位置:首页 > 其它

LeetCode--Merge Intervals

2014-08-09 20:33 288 查看
简单题:先按左左边排序,然后对输入的区间和当前结果合并

/**
* Definition for an interval.
* struct Interval {
*     int start;
*     int end;
*     Interval() : start(0), end(0) {}
*     Interval(int s, int e) : start(s), end(e) {}
* };
*/
class cmp
{
public:
bool operator()(const Interval&a,const Interval&b)
{
return a.start < b.start;
}
};
bool comp(const Interval &lhs, const Interval &rhs)
{
return lhs.start < rhs.start;
}
class Solution {
public:
vector<Interval> merge(vector<Interval> &intervals) {
sort(intervals.begin(),intervals.end(),cmp());
vector<Interval> ret;
int i;
for(i = 0 ; i < intervals.size() ; ++i)
{
if(i == 0)
{
ret.push_back(intervals[0]);
}
else
{
int size = ret.size();
if (ret[size-1].start <= intervals[i].start && intervals[i].start <= ret[size-1].end)
ret[size-1].end = max(ret[size-1].end, intervals[i].end);
else
ret.push_back(intervals[i]);
}
}
return ret;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: