• LeetCode56:合并区间


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

    示例 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 };
  • 相关阅读:
    习惯的本质:逐步建立新的常态
    如何度过有用的每一天
    如何利用晚上八点到十点这段时间自我提升
    为什么很多年轻人总会感到迷茫
    当你学会专注,人生才算真正成熟
    如何过上简单的生活
    游标
    触发器

    函数
  • 原文地址:https://www.cnblogs.com/rookiez/p/13211151.html
Copyright © 2020-2023  润新知