zoukankan      html  css  js  c++  java
  • [LeetCode] 56. Merge Intervals 解题思路

    Given a collection of intervals, merge all overlapping intervals.

    For example,
    Given [1,3],[2,6],[8,10],[15,18],
    return [1,6],[8,10],[15,18].

    问题:给定一个区间集合,整合所有重叠的区间。

    对区间集合按照 start 来排序,然后根据 intervals[i].start 和 res.lastElement.end 来整合即可。

     1     int static comp(Interval t1, Interval t2){
     2         int res = (t2.start > t1.start);
     3         return res;
     4     }
     5 
     6     vector<Interval> merge(vector<Interval>& intervals) {
     7         
     8         vector<Interval> vt;
     9     
    10         if (intervals.size() == 0) {
    11             return vt;
    12         }
    13             
    14         std::sort(intervals.begin(), intervals.end(), comp);
    15                 
    16         vt.push_back(intervals[0]);
    17         
    18         for (int i = 1 ; i < intervals.size(); i++) {
    19             
    20             if (intervals[i].start <= vt.back().end) {
    21                 vt.back().end = max( vt.back().end, intervals[i].end);
    22             }else{
    23                 vt.push_back(intervals[i]);
    24             }
    25         }
    26     
    27         return vt;
    28         
    29     }
  • 相关阅读:
    winfrom 获取当前系统时间
    netcore3.1API+efcore快速搭建
    php
    php
    php
    php-array的相关函数使用
    php-正则表达式
    vim的复制与粘贴
    vim的多窗口和文件切换操作
    laravel教程中出现500问题
  • 原文地址:https://www.cnblogs.com/TonyYPZhang/p/5081336.html
Copyright © 2011-2022 走看看