首页 > 学院 > 开发设计 > 正文

Merge Intervals

2019-11-08 02:42:01
字体:
来源:转载
供稿:网友

Given a collection of intervals, merge all overlapping intervals.

For example,Given [1,3],[2,6],[8,10],[15,18],

return [1,6],[8,10],[15,18].

struct Interval{	int start;	int end;	Interval() : start(0), end(0){}	Interval(int s, int e) : start(s), end(e) 	{}};bool comp(Interval &a, Interval &b){	return a.start < b.start;}vector<Interval> merge(vector<Interval> &intervals){	int n = intervals.size();	vector<Interval> result;		sort(intervals.begin(), intervals.end(), comp);		int left = intervals[0].start;	int right = intervals[0].end;		for (int i = 1; i < n; i++)	{		if (intervals[i].start > right)		{			result.push_back(Interval(left, right));			left = intervals[i].start;		}		right = intervals[i].end;	}		result.push_back(Interval(left, right));		return result;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表