首页 > 其他分享 >56. 合并区间

56. 合并区间

时间:2023-12-16 18:12:37浏览次数:29  
标签:56 合并 back intervals 数组 ans 区间

1.题目介绍

以数组 \(intervals\) 表示若干个区间的集合,其中单个区间为 \(intervals[i] = [starti, endi]\) 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:

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

示例 2:

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

提示:

  • \(1 <= intervals.length <= 10^{4}\)
  • \(intervals[i].length == 2\)
  • \(0 <= starti <= endi <= 10^{4}\)

2.题解

2.1 排序

思路

这里C++的sort函数可以将二维数组中的一维数组按其第一个数字大小排列。
接下来只要考虑如何合并数组的问题,由于左区间已经排列完毕,左边的数组左区间肯定是小于等于右边的数组左区间的
也就是说只要判断新来的区间的左区间是否小于等于旧数组的右区间,若是有重合,则合并,反之插入ans二维数组,进行下一次判断

代码

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        if (intervals.empty()) return {};
        vector<vector<int>> ans;
        sort(intervals.begin(), intervals.end());
        for (int i = 0; i < intervals.size(); i++){
            int L = intervals[i][0], R = intervals[i][1];
            if (!ans.empty() && ans.back()[1] >= L) ans.back()[1] = max(ans.back()[1],R);
            else ans.push_back(intervals[i]);
        }
        return ans;
    }
};

标签:56,合并,back,intervals,数组,ans,区间
From: https://www.cnblogs.com/trmbh12/p/17905120.html

相关文章

  • 区间素数筛模板
    例题素数密度template<typenameT>structsegment_sieve{ vector<bool>is_prime,is_prime_small; vector<T>prime; segment_sieve(){ is_prime.resize(1000010); is_prime_small.resize(1000100); } //对区间[a,b]内的整数执行筛法,is_prime[i-a]=true---......
  • H5628L 80V降压恒流IC 72V电动车前大灯驱动IC 输出9V 12V
    本文将介绍H5628L耐压100V降压恒流芯片的特点和应用,包括其80V降12V、降9V的降压能力,以及支持最大2.5A的电流。此外,文章还将阐述该芯片的电路保护和热性能等方面的优势。 H5628L是一款外围电路简单,采用VFPWM连续工作模式的非隔离式恒流LED驱动芯片。H5628L典型开关频率固定为130KHz......
  • CDR 合并打印
    cdrx8才支持外部导入csv格式,rtf格式,txt格式步骤:文件->合并打印->创建\载入合并打印->  注意事项:1,请将内容放置在页面中,也就是将页面调整到与内容一样大小,放在页面外,填充后很有可能出现错误,不利于打印等。2,将身份证复制进记事本,再将要填充的单元格格式设置成文本。在......
  • 商用软件调用开源代码后硬分叉不合并 —— 一种合法的防御性编程或者是商用软件的贪婪
    看到一个说法,说前段时间某滴的公司代码升级导致错误最后使全公司业务崩溃一整天的事情是因为公司商用软件中使用了一种合法的防御性编程,也就是商用软件调用开源代码后硬分叉不合并。 可以说商业企业大幅度使用开源软件已经是公开的秘密了,但是出于实际情况这些不合规的将开源软......
  • rk3568移植搭建Ubuntu20.04.5根文件系统
    一.下载ubuntu-base https://cdimage.ubuntu.com/ubuntu-base/releases/20.04.5/release/ 下载固件:buntu-base-20.04.5-base-arm64.tar.gz 根文件系统创建目录ubuntu_rootfs,并解压到该目录:mkdirubuntu_rootfstar-zxvfubuntu-base-20.04.5-base-arm64.tar.gz-Cubuntu_root......
  • 关于dart中Map的合并
    当想要合并两个mapMap<String,dynamic>a={'a':1,'c':{"c1":1,"c2":1},};Map<String,dynamic>b={'b':1,'c':{"c1":2,},};可以这么写Map<String,dynamic>......
  • SheetJS 合并后的单元格不能正常显示边框
    原配置样式代码/***设置单元格样式*@paramworksheet工作单元*@paramfirstRow开始行*@paramlastRow结束行*@paramfirstCol开始列*@paramlastCol结束列*@paramfont字号*@paramblod是否加粗*/setCellStyle(worksheet......
  • 倾斜摄影三维模型的根节点合并纹理匀色技术方法分析
    倾斜摄影三维模型的根节点合并纹理匀色技术方法分析 倾斜摄影三维模型的根节点合并中,纹理色彩匀色技术是一种重要的方法,旨在优化模型的纹理质量,使其在合并后呈现出更加均衡和自然的色彩。在本文中,我们将对纹理色彩匀色技术的方法进行详细分析。1、色彩均衡调整:色彩均衡调整......
  • 【合并排序链表】分治/优先队列
    合并两个排序链表模拟维护一个合并链表,每次添加两个排序链表中较小val的节点即可模拟代码publicListNodemergeTwo(ListNodea,ListNodeb){if(a==null)returnb;if(b==null)returna;ListNodeans=newListNode(0);Lis......
  • R语言 Lasso系数置信区间计算
    真是神了奇了,还能被审稿人问到Lasso系数的置信区间的信息,还好有现成的工具可以计算 #loadlibrarylibrary(selectiveInference)library(xlsx)library(glmnet)#loaddatasetwd("E:\\UAI_Program\\2-ZhongshanHospital\\12-xiaoyuyao系数置信区间")Data<-read.xlsx("R.xls......