zoukankan      html  css  js  c++  java
  • 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;
          }
      };
      
    • 结果:


  • 相关阅读:
    51 nod 1109 01组成的N的倍数
    zoj 1530 Find The Multiple
    洛谷 P1124 文件压缩
    洛谷 P1270 “访问”美术馆(树形DP)
    洛谷 P1272 重建道路(树形DP)
    ♫【CSS】命名颜色
    【注释】
    -_-#【命名】BEM
    ☀【jQuery插件】DOM 延迟渲染
    ☀【组件】getRequest
  • 原文地址:https://www.cnblogs.com/iceix/p/12717055.html
Copyright © 2011-2022 走看看