截止2022.1.19,y总的基础算法网课已经全部听完。明天上午开始学习数据结构。

接下来还剩:第一章其他剩余的打卡题目。解决完这个问题之后,y总第一章基础算法就算暂时告一段落了。

未来算法学习的路还很长,蓝桥杯、天梯赛、校级程序设计竞赛...这些都需要扎实的算法知识储备,希望自己能够坚持下去。勿在浮沙筑高台!

一、思路

二、AcWing 803

给定 n 个区间 [li,ri],要求合并所有有交集的区间。

注意如果在端点处相交,也算有交集。

输出合并完成后的区间个数。

例如:[1,3]和 [2,6]可以合并为一个区间[1,6]。

输入格式

第一行包含整数 n。

接下来 n 行,每行包含两个整数 l 和 r。

输出格式

共一行,包含一个整数,表示合并区间完成后的区间个数。

数据范围

1≤n≤100000,
−109≤li≤ri≤109

输入样例:

5
1 2
2 4
5 6
7 8
7 9

输出样例:

3
#include<iostream>
#include<vector>
#include<algorithm>using namespace std;typedef pair<int, int> PII;//有头文件vector就可用
vector<PII> segs;void merge(vector<PII> &segs)
{vector<PII> res;//必须要排序,因为后面执行判断语句时,就已默认区间有序sort(segs.begin(), segs.end());//头文件algorithmint st = -2e9, ed = -2e9;for (auto seg : segs)if (ed < seg.first){if (st != -2e9) res.push_back({st, ed});//错误:res.push_back(seg);st = seg.first, ed = seg.second;}else ed = max(ed, seg.second);        //错误:ed = seg.second;if (st != -2e9) res.push_back({st, ed});segs = res;//将结果容器res赋给segs,返回主函数(引用)
}int main()
{int n;cin >> n;for (int i = 0; i < n; i ++ ){int l, r;cin >> l >> r;segs.push_back({l, r});}merge(segs);cout << segs.size() << endl;return 0;
}

yxc_第一章 基础算法(三)_区间合并相关推荐

  1. yxc_第一章 基础算法(三)_双指针算法位运算

    一.双指针算法 1.双指针算法模板 2.AcWing 799 给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度. 输入格式 第一行包含整数 n. 第二行包含 n 个整 ...

  2. yxc_第一章 基础算法(三)_离散化

    目录 1.pair 2.algorithm头文件 3.unique函数 4.vector::iterator 5.begin and end 6.erase函数 7.AcWing 802 (1)思路 ...

  3. yxc_第一章 基础算法(二)_高精度

    目录 ​ 一.高精度加法 1.零散知识点 (1)vector容器 (2)iterator迭代器 (3)string类 (4)std (5)auto (6)cmp 2.模板题 (1)AcWing 791 ...

  4. yxc_第一章 基础算法(二)_前缀和与差分

    目录 一.一维前缀和 1.零散知识点 2.AcWing 795 二.二维前缀和 1.AcWing 796 三.一维差分 1.AcWing 797 四.二维差分 1.puts函数 2.AcWing 79 ...

  5. yxc_第一章 基础算法(一)

    目录 一.快速排序 1.零散知识点 (1)swap()函数: (2)>>位运算 (3)const int N=1e6+10: 2.快速排序模板题 (1)AcWing 785 快速排序 3. ...

  6. 第一章 基础算法 【完结】

    已经全部熟练掌握,还得经常的复习 目录 排序 二分 高精度 前缀和 差分 位运算 双指针 离散化 区间合并 排序 模板题 AcWing 785. 快速排序 786. 第k个数 快速排序 快排的核心思想 ...

  7. 一、基础算法9:区间合并 模板题+算法模板(区间合并)

    文章目录 算法模板 离散化题目模板 模板题 区间和 原题链接 题目 题解 思路 算法模板 离散化题目模板 // 将所有存在交集的区间合并 void merge(vector<PII> &a ...

  8. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

  9. 汇编怎么从内存地址写入连续的数字_汇编语言 第一章 基础知识

    系列文章见:Neptune 第一章 基础知识 1.1 机器语言 机器语言是机器指令的集合,机器指令展开来讲就是一台机器可以正确执行的命令. 由图可见,机器语言是十分晦涩难懂和不易查错的. 1.2 汇编 ...

最新文章

  1. 网站的高性能架构---存储性能优化
  2. linux apt-get update 和 upgrade 的区别
  3. 计算机游戏比赛,计算机学院2013年趣味运动会游戏比赛细则.doc
  4. 数据结构与算法--我们来玩丢手绢(约瑟夫环问题)
  5. 小程序 foreach_【第2106期】小程序依赖分析实践
  6. WiX安装选项--环境变量
  7. Python语法之com[1][:-7]
  8. window下移动设备/硬盘报错位置不可用
  9. linux make 无法生成 .o gch,Linux--makefile的使用
  10. PADS 管脚编号全部修改方式
  11. 《Android面试宝典》学习笔记(第三章:组件)
  12. Spring xml文件配置——创建bean的三种方式及作用范围、生命周期
  13. 国产高分系列卫星平台介绍
  14. 彭斌_无人机的发展与未来
  15. 如何写一篇数据分析报告3 - 分析背景是什么
  16. 关于产品的一些思考——八千里科技之谁叫我起床
  17. 黑大项目群第二次作业,飞行棋(龟兔赛跑)java
  18. java强引用不会被回收_强引用(Strong Reference)-不回收
  19. [转载]Navicat12.1系列破解教程,Navicat12.1.16破解亲测有效!!
  20. 借记来帐,借记往账,贷记来帐,贷记往账

热门文章

  1. 新旧版本谷歌浏览器自动播放问题
  2. 宜早不宜晚,使用思维导图训练孩子的逻辑思维!
  3. 农村科学实验杂志农村科学实验杂志社农村科学实验编辑部2022年第12期目录
  4. HTML基本网页结构
  5. IMSI号和IMEI解释
  6. Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
  7. 关于阿里云服务器可以怎么选择地域
  8. 利用zxing生成二维码
  9. 在Windows系统上对hfds中的文件进行操作
  10. Ubuntu 20.04系统中Sage(sagemath)安装及使用详细过程