首页 > 其他 > 详细

56. 合并区间

时间:2020-03-19 18:49:11      阅读:41      评论:0      收藏:0      [点我收藏+]
 1 class Solution 
 2 {
 3 public:
 4     vector<vector<int>> merge(vector<vector<int>>& nums) 
 5     {
 6         vector<vector<int>> res;
 7         if(nums.empty()) return res;
 8         sort(nums.begin(),nums.end());//首先将所有nums排序,默认左端点升序
 9         int m = nums.size();
10         int start = nums[0][0],end = nums[0][1];
11 
12         for(int i = 1;i < m;i ++)
13         {   
14             //此时有3种情况
15             //1、当前右端点小于end
16             //2、当前右端点大于end且end大于当前左端点
17             //3、end小于当前左端点
18             if(nums[i][1] < end) continue;
19             else if(nums[i][1] >= end && nums[i][0] <= end) end = nums[i][1];
20             else if(nums[i][0] > end)
21             {
22                 res.push_back({start,end});
23                 start = nums[i][0],end = nums[i][1];
24             }
25         }
26         res.push_back({start,end});
27         return res;
28     }
29 };

 

56. 合并区间

原文:https://www.cnblogs.com/yuhong1103/p/12526404.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!