码蹄集 - MT2140 - 双端队列
@TOC
双端队列
时间限制:1秒
空间限制:128M
题目描述
小码哥想创建一个双端队列,即,两头都能进,两头都能访问,两头都能出。请你创建一个这样的双端队列并帮他实现以下三种操作:
- 1 x //将整数x增加到头部
- 2 x //将整数x增加到尾部
- 3 //访问头部的元素
- 4 //访问尾部的元素
- 5 //弹出(删除)头部的元素
- 6 //弹出(删除)尾部的元素
这个双端数列一开始是空的。
输入描述
第一行输入一个整数n,表示操作个数。
接下来n行,每行输入一个操作,格式如题目描述中所示。
数据范围
保证:对于100%的数据:1<=n<=1,000,000,x在int类型范围内,数列为空时只进行操作1和2。
输出描述
对于每个操作3和4,输出一行一个整数表示答案。
样例一
输入
1 |
|
输出
1 |
|
题目分析
本片题解提供一种使用C++ list 模拟双端队列的方法
list可以很方便地进行头部和尾部的插入删除取值操作,正好是题目要求进行的6种操作。
- 插入头部:push_front
- 插入尾部:push_back
- 访问头部:*.first
- 访问尾部:back
- 删除头部:pop_front
- 删除尾部:pop_back
因此直接进行模拟即可。
AC代码
1 |
|
虽然代码可以复制,但最好还是自己理解后再敲哦
原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/127097523
码蹄集 - MT2140 - 双端队列
https://blog.letmefly.xyz/2022/09/28/MaTiJi - MT2140 - 双端队列/