news 2026/4/18 11:06:38

合并区间(二维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/18 5:54:57

ubuntu远程rdp连接屏幕分辨率太小

# 切换root权限 sudo -i # 编辑XRDP的会话配置文件 nano /etc/xrdp/startwm.sh在文件的最顶部&#xff08;#!/bin/sh下面&#xff09;添加一行分辨率配置&#xff08;比如设置为 1920x1080&#xff0c;可根据需求调整&#xff09;&#xff1a;bash运行# 设置XRDP默认分辨率&…

作者头像 李华
网站建设 2026/4/12 23:25:11

【2025最新】植物大战僵尸融合版玩法革新、下载安装教程与策略解析

前言 在众多塔防游戏中&#xff0c;《植物大战僵尸》凭借轻松的操作体验、丰富的关卡设计与颇具趣味的策略层次成为塔防类游戏中的经典之作。而近年来衍生出的 《植物大战僵尸融合版》&#xff0c;则在这一基础上进行了深度开发。它通过引入全新的植物融合机制、僵尸形态改造系…

作者头像 李华
网站建设 2026/4/13 13:06:38

40、GCC对C语言的扩展

GCC对C语言的扩展 1. 引言 GNU编译器集合(GCC)为C语言提供了许多扩展,其中一些对系统程序员特别有价值。大部分扩展能让程序员向编译器提供代码行为和预期用途的额外信息,帮助编译器生成更高效的机器代码,还有些扩展填补了C语言底层的空白。 GCC提供的部分扩展已被纳入…

作者头像 李华
网站建设 2026/4/18 2:00:44

17、构建前端面板界面全解析

构建前端面板界面全解析 1. 常见架构与LCD显示 在许多应用场景中,存在一种常见的架构,即Linux处理器通过连接到串行、并行或USB端口的控制器芯片来处理LCD显示。这种架构适用于小批量生产以及基于个人计算机主板的设备。 这类架构下的LCD通常有1 - 4行文本,每行包含10 - …

作者头像 李华