【数组】56. 合并区间
题目:

解答:
1 /** 2 * Definition for an interval. 3 * struct Interval { 4 * int start; 5 * int end; 6 * Interval() : start(0), end(0) {} 7 * Interval(int s, int e) : start(s), end(e) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 static bool earlier(const Interval &a, const Interval &b) 13 { 14 return a.start < b.start; 15 } 16 vector<Interval> merge(vector<Interval> &intervals) 17 { 18 if(intervals.size() <= 1) 19 { 20 return intervals; 21 } 22 sort(intervals.begin(), intervals.end(), earlier); 23 24 for(int i = 0; i < intervals.size() - 1; i++) 25 { 26 if(intervals[i].end >= intervals[i + 1].start) 27 { 28 if(intervals[i].end < intervals[i + 1].end) 29 { 30 intervals[i].end = intervals[i + 1].end; 31 } 32 intervals.erase(intervals.begin() + i + 1); 33 --i; 34 } 35 36 } 37 return intervals; 38 } 39 };

浙公网安备 33010602011771号