news 2026/4/16 19:54:42

合并区间(二维vector使用,多维vector使用默认sort)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
合并区间(二维vector使用,多维vector使用默认sort)

注意点:

1.sort自带的比较函数是支持多维数组比较的,使用的是字典序比较;

2.对于多维的vector,可以使用back,front,at等函数

比较例子:


二维 vector 示例

vector<vector<int>> v = { {2,5}, {1,3}, {1,2} }; sort(v.begin(), v.end());

比较过程(字典序)

  1. 比较[2,5][1,3]

    • 第一元素 2 > 1 →[1,3] < [2,5]

  2. 比较[2,5][1,2]

    • 第一元素 2 > 1 →[1,2] < [2,5]

  3. 比较[1,3][1,2]

    • 第一元素相等 1 == 1 → 比第二元素 3 > 2 →[1,2] < [1,3]

排序结果:

{ {1,2}, {1,3}, {2,5} }

左端点升序排列,相同左端点按右端点升序,正好符合区间合并需求。


三维 vector 示例

vector<vector<vector<int>>> arr = { {{1,2},{3,4}}, {{1,2},{3,3}}, {{0,9}}, {{1,1},{2,2}} }; sort(arr.begin(), arr.end());

比较过程(逐层字典序)

  1. 比较{{1,2},{3,4}}{{1,2},{3,3}}

    • 第一行[1,2] == [1,2]→ 比第二行[3,4] > [3,3]→ 后者更小

  2. 比较{{0,9}}与其它

    • 第一行[0,9]小于[1,2]→ 排最前

  3. 比较{{1,1},{2,2}}{{1,2},{3,3}}

    • 第一行[1,1] < [1,2]→ 排在前

排序结果:

{ {{0,9}}, {{1,1},{2,2}}, {{1,2},{3,3}}, {{1,2},{3,4}} }

外层二维数组按字典序排列,内层数组也按字典序排列。


总结规律

  • 二维 vector:先比每行第一个元素,不同立即决定顺序;相同则比第二个元素

  • 三维 vector:先比第一层的第一行第一个元素 → 若相等比第一行第二个元素 → 若仍相等比下一行,依此类推

  • 任意维度:逐层逐元素比较 → 遇到不同立即返回 → 相同继续比较下一位

class Solution { public: vector<vector<int>> merge(vector<vector<int>>& intervals) { sort(intervals.begin(),intervals.end()); vector<vector<int>> tmp; for(int i =0;i<intervals.size();i++){ int L=intervals[i][0]; int R=intervals[i][1]; if(!tmp.size() || L>tmp.back()[1]) tmp.push_back({L,R}); else tmp.back()[1]=tmp.back()[1]>R?tmp.back()[1]:R; } return tmp; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:16:53

36、高级信号管理:深入理解与应用

高级信号管理:深入理解与应用 1. 信号集操作函数 1.1 基本信号集函数 在信号处理中,有两个初始化信号集的函数。 sigemptyset() 用于清空信号集, sigfillset() 则将所有信号包含在信号集中,它们都返回 0。在进一步使用信号集之前,需要调用这两个函数之一对信号集进…

作者头像 李华
网站建设 2026/4/16 12:27:50

19、Linux 进程管理中的用户、组、会话与守护进程详解

Linux 进程管理中的用户、组、会话与守护进程详解 1. 用户和组 ID 相关概念及操作 在 Linux 系统中,进程的用户和组 ID 是进行权限管理的重要依据,涉及到真实用户 ID、有效用户 ID 和保存用户 ID 等概念。 1.1 真实、有效和保存用户 ID 当进程执行 exec 调用时,通常有…

作者头像 李华
网站建设 2026/4/16 12:28:56

11、构建 Linux 无线接入点全攻略

构建 Linux 无线接入点全攻略 1. 无线安全的重要性与防护措施 在设置无线网络时,安全问题尤为重要。因为网络数据在空中传播,很容易被他人窃听。无防护的无线接入点会带来两种威胁: - LAN 入侵 :数据可能被盗取,LAN 主机可能被变成恶意软件的僵尸网络,或者被用作非法…

作者头像 李华
网站建设 2026/4/15 18:21:01

从零理解Takebishi DXPServer:一款面向工厂的 OPC Server软件

在制造企业推进数字化建设时&#xff0c;最容易被低估的一环是“设备数据怎么稳定、标准、可复用地出来”。如果把 MES、看板、数据中台比作高楼&#xff0c;那么 OPC Server软件 就是地基与管网&#xff1a;向下对接各类设备协议&#xff0c;向上把数据以统一接口交付给业务系…

作者头像 李华
网站建设 2026/4/16 12:21:53

哈希表概述 -常见哈希函数和解决冲突的方法概述

可以把哈希表理解为一种高级的数组&#xff0c;这种数组的下标可以是很大的整数&#xff0c;浮点数&#xff0c;字符串甚至结构体。 哈希函数 核心是均匀&#xff0c;工程上常利用哈希函数把大数据量的样本&#xff0c;均匀哈希到多台机器、多个文件&#xff0c;从而省下内存…

作者头像 李华