您的位置:首页 > 其它

LeetCode-Merge Intervals

2013-08-04 22:27 274 查看
/**
* 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 Solution {
public:
vector<Interval> merge(vector<Interval> &intervals) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (intervals.size() != 0)
{
sort(intervals.begin(), intervals.end(), cmp);
vector<Interval>::iterator iter;
for (iter = intervals.begin() + 1; iter != intervals.end(); ++iter)
{
if (isOverlapping(*iter, *(iter - 1)))
{
iter->start = min(iter->start, (iter - 1)->start);
iter->end = max(iter->end, (iter - 1)->end);
iter = intervals.erase(iter - 1);
}
}
}
return intervals;

}

bool isOverlapping(const Interval &i1, const Interval &i2)
{
return i1.end >= i2.start && i1.start <= i2.end;
}

static int cmp(const Interval &i1, const Interval &i2)
{
return i1.start < i2.start;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: