首页 > 代码库 > LeetCode--Merge Intervals

LeetCode--Merge Intervals

简单题:先按左左边排序,然后对输入的区间和当前结果合并

 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 cmp11 {12     public:13     bool operator()(const Interval&a,const Interval&b)14     {15         return a.start < b.start;16     }17 };18 bool comp(const Interval &lhs, const Interval &rhs)19  {20      return lhs.start < rhs.start;21  }22 class Solution {23 public:24     vector<Interval> merge(vector<Interval> &intervals) {25         sort(intervals.begin(),intervals.end(),cmp());26         vector<Interval> ret;27         int i;28         for(i = 0 ; i < intervals.size() ; ++i)29         {30             if(i == 0)31             {32                 ret.push_back(intervals[0]);33             }34             else35             {36                 int size = ret.size();37                  if (ret[size-1].start <= intervals[i].start && intervals[i].start <= ret[size-1].end)38                      ret[size-1].end = max(ret[size-1].end, intervals[i].end);39                  else40                      ret.push_back(intervals[i]);41             }42         }43         return ret;44     }45 };