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;
}
};
浙公网安备 33010602011771号