标签:
struct Interval{ int start; int end; Interval() :start(0), end(0){} Interval(int s, int e) :start(s), end(e){} }; vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) { //关键是搞清不同元素之间是否有重叠 vector<Interval>::iterator it = intervals.begin(); while (it != intervals.end()) { if (newInterval.end > it->start) { intervals.insert(it, newInterval); return intervals; } else if (it->end > newInterval.start) { it++; continue; } else { newInterval.start = min(it->start, newInterval.start); newInterval.end = min(it->end, newInterval.end); } } //如果将最后一个元素归并了 intervals.insert(intervals.end(), newInterval); return intervals; }
标签:
原文地址:http://www.cnblogs.com/573177885qq/p/5729183.html