56. 合并区间

排序后,进行遍历

  1. 当result为空时,直接将当前的区间添加
  2. 当当前区间和result最后一个区间重叠时,将result的最后一个区间的右边界变为

    1. max(result.back()[1] ,intervals[i][1])
  3. 当当前区间和result最后一个区间没有重叠时,直接将当前区间添加

    1. class Solution {
    2. public:
    3. static bool cmp(vector<int>& a,vector<int>& b)
    4. {
    5. return a[0]<b[0];
    6. }
    7. vector<vector<int>> merge(vector<vector<int>>& intervals) {
    8. sort(intervals.begin(),intervals.end(),cmp);
    9. vector<vector<int>> result;
    10. for(int i=0;i<intervals.size();i++)
    11. {
    12. if(result.size()==0 || intervals[i][0]>result.back()[1])
    13. {
    14. result.push_back({intervals[i][0],intervals[i][1]});
    15. }
    16. else
    17. result.back()[1] = max(result.back()[1] ,intervals[i][1]);
    18. }
    19. return result;
    20. }
    21. };