Leetcode
56. 合并区间
/**
* Definition for an interval.
* struct Interval {
* int start;
* int end;
* Interval() : start(0), end(0) {}
* Interval(int s, int e) : start(s), end(e) {}
* };
*/
bool cmp (const Interval &a, const Interval &b) {
return a.start < b.start;
}
class Solution {
public:
vector<Interval> merge(vector<Interval>& intervals) {
vector<Interval> rev;
if (intervals.empty()){
return rev;
}
sort(intervals.begin(), intervals.end(), cmp);
for (int i = 0; i != intervals.size(); ++i) {
int j = 0;
for (; j != rev.size(); ++j){
if (intervals[i].start <= rev[j].end && intervals[i].end >= rev[j].start) {
if ( intervals[i].start < rev[j].start) {
rev[j].start = intervals[i].start;
}
if (intervals[i].end > rev[j].end) {
rev[j].end = intervals[i].end;
}
break;
}
}
if (j == rev.size()) {
struct Interval ti(intervals[i].start, intervals[i].end);
rev.push_back(ti);
}
}
return rev;
}
};