码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode56:合并区间

时间:2020-06-30 01:01:03      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:区间   bsp   cto   输出   color   style   一起   leetcode   for   

给出一个区间的集合,请合并所有重叠的区间。

示例 1:

输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2:

输入: [[1,4],[4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。

 

可以先对vector进行排序,然后按顺序遍历,这样能merge到一起的区间一定是挨着的,可以直接遍历然后merge。

这里sort直接就默认使用第一个元素?vector的sort可以通过自己定义排序函数来sort。

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

 

LeetCode56:合并区间

标签:区间   bsp   cto   输出   color   style   一起   leetcode   for   

原文地址:https://www.cnblogs.com/rookiez/p/13211151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!