算法训练2.7:简单的数据结构(双端队列)

简介: 分析:1.deque就是一个两头操作的队列。2.有头插,尾插:push_front()/push_back()。3.有头删,尾删:pop_front()/pop_back()。4.然后再用一些工作性算法:sort(排序),reverse(倒置)。知道这些之后做这道题就很简单了。

380011f6e8f84fecbf8feac94f9ddfc.png


分析:

1.deque就是一个两头操作的队列。

2.有头插,尾插:push_front()/push_back()。

3.有头删,尾删:pop_front()/pop_back()。

4.然后再用一些工作性算法:sort(排序),reverse(倒置)。

知道这些之后做这道题就很简单了。

源码:

include <bits/stdc++.h>

using namespace std;

const int maxn = 1e5 + 10;

char c[maxn];

deque q;

int main()

{

int n, m, x, y;
scanf("%d%d", &n, &m);
while (m--)
{
    scanf("%d", &x);
    {
if (x == 1)
        {
            scanf("%d", &y);
            q.push_front(y);
        }
else if (x == 2)
            q.pop_front();
else if (x == 3)
        {
            scanf("%d", &y);
            q.push_back(y);
        }
else if (x == 4)
            q.pop_back();
else if (x == 5)
reverse(q.begin(), q.end());
else if (x == 6)
        {
printf("%d\n", q.size());
for (int i = 0; i < q.size(); ++i)
printf("%d ", q[i]);
            puts("");
        }
else
sort(q.begin(), q.end());
    }
}

}

目录
相关文章
|
14天前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
90 9
|
1月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
69 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
1月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
58 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
16天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
17天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
29天前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
32 4
|
1月前
初步认识栈和队列
初步认识栈和队列
58 10
|
1月前
|
搜索推荐 算法
数据结构与算法学习十四:常用排序算法总结和对比
关于常用排序算法的总结和对比,包括稳定性、内排序、外排序、时间复杂度和空间复杂度等术语的解释。
19 0
数据结构与算法学习十四:常用排序算法总结和对比
|
1月前
【数据结构】-- 栈和队列
【数据结构】-- 栈和队列
16 0
|
1月前
|
机器学习/深度学习 搜索推荐 算法
探索数据结构:初入算法之经典排序算法
探索数据结构:初入算法之经典排序算法

热门文章

最新文章