• LeetCode.56(合并区间)


    LeetCode.56(合并区间) - 中等

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

      示例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] 可被视为重叠区间。
      
    • 代码:

      //2020_04_17
      class Solution
      {
      public:
          vector<vector<int>> merge(vector<vector<int>> &intervals)
          {
              vector<vector<int>> res;     //返回结果
              int size = intervals.size(); //长度节省时间
              if (size == 0)               //处理长度为0的异常
                  return res;                           
              sort(intervals.begin(), intervals.end()); //按照左端排序
              vector<int> temp = intervals[0];          //temp指向原容器中第一个元素
              for (int i = 1; i < size; i++)
              {
                  if (temp[1] < intervals[i][0]) //若后左端>=前右端(无交集)
                  {
                      res.push_back(temp);       //加入结果容器
                      temp[0] = intervals[i][0]; //同步修改temp
                      temp[1] = intervals[i][1];
                  }
                  else //若后左端<=前右端(有交集)
                  {
                      if (temp[1] < intervals[i][1]) //比较右端大小
                      {
                          temp[1] = intervals[i][1]; //temp右端改为较大者
                      }
                  }
              }
              res.push_back(temp); //将最后的temp加入到结果容器
              return res;
          }
      };
      
    • 结果:


  • 相关阅读:
    异常单据锁定涉及的数据库表
    用友通只启用核算模块
    一个迟到MM如何让老师疯掉的
    偷偷看,别笑出声啊
    安装时又提示删除程序
    自动折行的设置
    酒后百态新编 恶搞
    系统管理中“站点”“运行状态”的含义
    神经病女士银行取钱
    HDOJ 1017
  • 原文地址:https://www.cnblogs.com/iceix/p/12717055.html
Copyright © 2020-2023  润新知