0411代码,备战蓝桥杯基础数据结构

2024-04-12 04:04

本文主要是介绍0411代码,备战蓝桥杯基础数据结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.单链表

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010;int h,e[N],ne[N],idx;
int m;void addhead(int x){e[idx] = x;ne[idx] = h;h = idx ++;
}void add(int k,int x){e[idx] = x;ne[idx] = ne[k];ne[k] = idx ++;
}void delete1(int k){ne[k] = ne[ne[k]];
}int main()
{cin>>m;char op[2];h = -1;while(m--){scanf("%s",&op);if(op[0] == 'H'){int x;cin>>x;addhead(x);}if(op[0] == 'I'){int k,x;cin>>k>>x;add(k-1,x);}if(op[0] == 'D'){int k;cin>>k;if (k == 0) h = ne[h];//删除头节点要特判!!!! delete1(k-1);}}	for(int i=h;i!=-1;i=ne[i]){int j = e[i];cout<<j<<' ';}return 0;
}

2.栈:读入string要用cin

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010;int m;
int st[N];
int tt = -1;int main()
{cin>>m;while(m--){string op;cin>>op;if(op == "push"){int x;cin>>x;st[++tt] = x;}if(op == "empty"){if(tt==-1) cout<<"YES"<<endl;else cout<<"NO"<<endl;}if(op == "query"){cout<<st[tt]<<endl;}if(op == "pop"){tt--;}}return 0;} 

3.队列

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010;int m;
int q[N];
int tt = -1,hh;int main()
{cin>>m;while(m--){string op;cin>>op;if(op == "push"){int x;cin>>x;q[++tt] = x;}if(op == "empty"){if(hh>tt) cout<<"YES"<<endl;else cout<<"NO"<<endl;}if(op == "query"){cout<<q[hh]<<endl;}if(op == "pop"){hh++;}}return 0;} 

4.单调栈

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010;int n;
int st[N];
int tt;int main()
{cin>>n;for(int i=0;i<n;i++){int x;cin>>x;while(tt && st[tt] >= x){tt--;}if(tt) cout<<st[tt]<<' ';//第一个数序号是0,输出-1 else cout<<"-1"<<' ';st[++tt] = x;}return 0; 
}

5.单调队列:注意第二次更新hh=0,tt=-1

#include<algorithm>
#include<iostream>
#include<cstring>
#include<queue>
#include<cmath>using namespace std;
const int N = 1000010; int n,k;
int q[N],hh,tt=-1;
int a[N];int main()
{cin>>n>>k;for(int i=0;i<n;i++) cin>>a[i];//找最小值 for(int i=0;i<n;i++){while(hh<=tt && i-k+1 > q[hh]){hh++;//q数组是下标 }while(hh<=tt && a[q[tt]] >= a[i]){tt--;//则不可能作为答案输出 } q[++tt] = i;//要先添加进来,在窗口里,可能作为答案输出 if(i >= k-1){cout<<a[q[hh]]<<' ';}}cout<<endl;//找最大值int hh=0,tt=-1;for(int i=0;i<n;i++){while(hh<=tt && i-k+1 > q[hh]){hh++;//q数组是下标 }while(hh<=tt && a[i] >= a[q[tt]]){tt--;//则不可能作为答案输出 } q[++tt] = i;//要先添加进来,在窗口里,可能作为答案输出 if(i >= k-1){cout<<a[q[hh]]<<' ';}} return 0; } 

这篇关于0411代码,备战蓝桥杯基础数据结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896047

相关文章

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘