yxc_第一章 基础算法(三)_区间合并
截止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_第一章 基础算法(三)_区间合并相关推荐
- yxc_第一章 基础算法(三)_双指针算法位运算
一.双指针算法 1.双指针算法模板 2.AcWing 799 给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度. 输入格式 第一行包含整数 n. 第二行包含 n 个整 ...
- yxc_第一章 基础算法(三)_离散化
目录 1.pair 2.algorithm头文件 3.unique函数 4.vector::iterator 5.begin and end 6.erase函数 7.AcWing 802 (1)思路 ...
- yxc_第一章 基础算法(二)_高精度
目录 一.高精度加法 1.零散知识点 (1)vector容器 (2)iterator迭代器 (3)string类 (4)std (5)auto (6)cmp 2.模板题 (1)AcWing 791 ...
- yxc_第一章 基础算法(二)_前缀和与差分
目录 一.一维前缀和 1.零散知识点 2.AcWing 795 二.二维前缀和 1.AcWing 796 三.一维差分 1.AcWing 797 四.二维差分 1.puts函数 2.AcWing 79 ...
- yxc_第一章 基础算法(一)
目录 一.快速排序 1.零散知识点 (1)swap()函数: (2)>>位运算 (3)const int N=1e6+10: 2.快速排序模板题 (1)AcWing 785 快速排序 3. ...
- 第一章 基础算法 【完结】
已经全部熟练掌握,还得经常的复习 目录 排序 二分 高精度 前缀和 差分 位运算 双指针 离散化 区间合并 排序 模板题 AcWing 785. 快速排序 786. 第k个数 快速排序 快排的核心思想 ...
- 一、基础算法9:区间合并 模板题+算法模板(区间合并)
文章目录 算法模板 离散化题目模板 模板题 区间和 原题链接 题目 题解 思路 算法模板 离散化题目模板 // 将所有存在交集的区间合并 void merge(vector<PII> &a ...
- 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...
- 汇编怎么从内存地址写入连续的数字_汇编语言 第一章 基础知识
系列文章见:Neptune 第一章 基础知识 1.1 机器语言 机器语言是机器指令的集合,机器指令展开来讲就是一台机器可以正确执行的命令. 由图可见,机器语言是十分晦涩难懂和不易查错的. 1.2 汇编 ...
最新文章
- 网站的高性能架构---存储性能优化
- linux apt-get update 和 upgrade 的区别
- 计算机游戏比赛,计算机学院2013年趣味运动会游戏比赛细则.doc
- 数据结构与算法--我们来玩丢手绢(约瑟夫环问题)
- 小程序 foreach_【第2106期】小程序依赖分析实践
- WiX安装选项--环境变量
- Python语法之com[1][:-7]
- window下移动设备/硬盘报错位置不可用
- linux make 无法生成 .o gch,Linux--makefile的使用
- PADS 管脚编号全部修改方式
- 《Android面试宝典》学习笔记(第三章:组件)
- Spring xml文件配置——创建bean的三种方式及作用范围、生命周期
- 国产高分系列卫星平台介绍
- 彭斌_无人机的发展与未来
- 如何写一篇数据分析报告3 - 分析背景是什么
- 关于产品的一些思考——八千里科技之谁叫我起床
- 黑大项目群第二次作业,飞行棋(龟兔赛跑)java
- java强引用不会被回收_强引用(Strong Reference)-不回收
- [转载]Navicat12.1系列破解教程,Navicat12.1.16破解亲测有效!!
- 借记来帐,借记往账,贷记来帐,贷记往账