LeetCode-Merge Intervals-合并区间

https://oj.leetcode.com/problems/merge-intervals/

水题。需要注意sort的用法可能在平台上不好使。

/**
 * Definition for an interval.
 * struct Interval {
 *     int start;
 *     int end;
 *     Interval() : start(0), end(0) {}
 *     Interval(int s, int e) : start(s), end(e) {}
 * };
 */
typedef pair<int,int> scpair;
class Solution {
public:
	int n,m;
	vector<Interval> merge(vector<Interval> &intervals) {
		vector<Interval> res;
		n=intervals.size();
		vector<scpair> a(n);
		for (int i=0;i<n;i++){
		    a[i]=scpair(intervals[i].start,intervals[i].end);
		}
		
		if (n==0) return res;
		sort(a.begin(),a.end());
		int l=a[0].first;
		int r=a[0].second;
		for (int i=1;i<n;i++){
			if (r>= a[i].first){
				r=max(r,a[i].second);
			}
			else{
				res.push_back(Interval(l,r));
				l=a[i].first;
				r=a[i].second;
			}
		}
		res.push_back(Interval(l,r));
		return res;
	}
};

  

posted @ 2014-10-07 17:50  zombies  阅读(121)  评论(0编辑  收藏  举报