合并区间,先预处理排序。
然后每个区间枚举,看能不能合后面的合并即可。
int cmp(Interval a,Interval b) { if(a.start == b.start) return a.end < b.end; return a.start < b.start; }</p> <p>class Solution { public: vector<Interval> merge(vector<Interval> &intervals) { sort(intervals.begin(),intervals.end(),cmp); vector<Interval> ans; ans.clear(); if(intervals.size() <= 0)return ans; Interval item = intervals[0]; for(int i = 1;i < intervals.size();i++) { if(item.end < intervals[i].start) { ans.push_back(item); item = intervals[i]; } else { if(item.end < intervals[i].end) item.end = intervals[i].end; } } ans.push_back(item); return ans; } };