用队列实现栈,力扣

题目地址:

225. 用队列实现栈 - 力扣(LeetCode)

难度:简单

今天刷用队列实现栈,大家有兴趣可以点上看看题目要求,试着做一下

题目:

 

我们直接看题解吧:

解题方法:

方法1、利用双队列

方法2、利用单队列

审题目+事例+提示:

解题分析:

单队列主要是元素先出队然后在入队,实现前后顺序的调转

双队列主要是把主队元素出队放到辅助对,然后辅助队在入队主队列

解题思路:

      单队列:

1、入栈操作时,首先获得入栈前的元素个数 n,然后将元素入队到队列,再将队列中的前 n-1个元素(即除了最后一个后入队的元素之外的全部元素)依次出队并入队到队列尾部,此时队列的前端的元素即为后入队的元素,且队列的前端和后端分别对应栈顶和栈底

2、出栈操作只需要移除队列的前端元素并返回即可,获得栈顶元素操作只需要获得队列的前端元素并返回即可(不移除元素)。

3、由于队列用于存储栈内的元素,判断栈是否为空时,只需要判断队列是否为空即可。

代码实现:

class MyStack {Queue<Integer> queue;  public MyStack() {queue = new LinkedList<Integer>();//创建队列对象  }/** Push element x onto stack. */public void push(int x) {int n = queue.size();queue.offer(x);            //for (int i = 0; i < n; i++) {     //前n-1元素出队,接着再次入队queue.offer(queue.poll());}}/** Removes the element on top of the stack and returns that element. */public int pop() {return queue.poll();           //出队操作}/** Get the top element. */public int top() {return queue.peek();          //返回栈顶元素}/** Returns whether the stack is empty. */public boolean empty() {return queue.isEmpty();         //判断是否为空}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL8改库,表,字段编码及排序规则

修改数据库编码格式语句 SELECT CONCAT(ALTER DATABASE ,SCHEMA_NAME, CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;) as 修改数据库编码格式语句 FROM information_schema.SCHEMATA WHERE 11 AND SCHEMA_NAME 数据库名称 #要修改的数据库名称 -- 修改所有自建库 -…

conda环境报错: Solving environment: failed with initial frozen solve.

出现的情况&#xff1a; 解决方法&#xff1a; 参考了许多博客 建议的方法&#xff1a; 创建一个虚拟环境 conda create -n torch_1.3 python3.6 激活虚拟环境 conda activate torch_1.3 conda安装 conda install pytorch1.5.0 如果报错每个包单独安装就可以了&#x…

使用CFimagehost源码自建无需数据库支持的PHP图片托管服务

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

addslashes()函数

addslashes() 函数是 PHP 中用于在字符串中的特定字符前添加反斜杠 \ 的函数。它通常用于准备字符串&#xff0c;以防止其中的字符被误解为具有特殊含义的字符。这个函数的主要用途是在构建 SQL 查询语句或其他需要转义特殊字符的上下文中&#xff0c;以防范一些安全问题&#…

ubuntu20.04里面安装目标检测数据标注软件labelImg的详细过程

1.在github克隆仓库到本地 地址&#xff1a;https://github.com/Ruolingdeng/labelImg.git 或者百度网盘下载 链接&#xff1a;https://pan.baidu.com/s/1p-478j5WOTN0TKmv3qh-YQ?pwdl8bj 提取码&#xff1a;l8bj 2、进入到labelimg的文件夹&#xff0c;安装pyqt相关依赖包 …

好的CRM系统是什么样的?有没有推荐的CRM?

企业如果引入一套优秀的CRM系统&#xff0c;能极大地提升企业的效率&#xff0c;调动人员积极性。同时&#xff0c;带有自动化功能的CRM系统能帮助企业省去日常经营中琐碎无意义的活动&#xff0c;让企业员工把更多时间集中到业务开发上来&#xff0c;实现经济效益的提升。那么…

下一站 GenAI @你!站稳扶好,“码”上发车

点击下方链接&#xff0c;精彩抢先看https://dev.amazoncloud.cn/column/article/657a74432b6d177219412733?trkcndc-detail 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最…

飞天使-linux操作的一些技巧与知识点4-ansible常用的技巧,配置等

文章目录 ansible配置文件的优先级尝试开始进行操作ansible常用模块ansible 的playbook示例安装phpplaybook中变量的引用 ansible yum install -y ansible 测试是否可用 ansible localhost -m ping /etc/ansible/ansible.cfg &#xff1a;主配置文件&#xff0c;配置 ansible…

解决固定资产盘点问题,易点易动来帮忙!

固定资产盘点是企业管理中不可或缺的环节&#xff0c;然而&#xff0c;很多企业在固定资产盘点方面面临一系列问题&#xff1a; 盘点过程繁琐&#xff1a;传统的手动盘点方式需要耗费大量人力和时间&#xff0c;容易出现疏漏和错误&#xff0c;效率低下&#xff1b; 数据记录不…

随记-nginx docker + SSL 配置 - 配置等资源挂宿主机

随记-Nginx docker SSL 配置 - 配置等资源挂宿主机等 笔者动手配置&#xff0c;随手写的笔者&#xff0c;保证可操作 话说现在padmon是不是已经有代替docker的趋势了&#xff0c;谁能告诉我一把&#xff1f; 配置前准备 # 拉取nginx镜像 docker pull nginx #启动(暂时) doc…

Docker技术基础梳理 - Docker网络管理

为什么需要容器的网络管理&#xff1f; 容器的网络默认与宿主机、与其他容器相互隔离&#xff0c;且容器中可以运行一些网络应用&#xff0c;比如nginx、web应用、数据库等&#xff0c;如果需要让外部也可以访问这些容器中运行的网络应用&#xff0c;那么就需要配置网络来实现…

【ITK库学习】使用itk库进行图像滤波ImageFilter:二阶微分

目录 1、itkRecursiveGaussianImageFliter 递归高斯滤波器2、itkLapacianRecursiveGaussianImageFiter 拉普拉斯高斯滤波器 1、itkRecursiveGaussianImageFliter 递归高斯滤波器 该类用于计算具有高斯核近似值的 IIR 卷积的基类。 该类是递归滤波器的基类&#xff0c;它与高斯…

Netty详细文档

Netty教程 文章目录 Netty教程 Netty简介Netty 的介绍Netty 的应用场景互联网行业游戏行业大数据领域其它开源项目使用到 Netty Netty 的学习资料参考 Java BIO编程I/O 模型BIO、NIO、AIO 使用场景分析Java BIO 基本介绍Java BIO 工作机制Java BIO 应用实例问题分析 Java NIO编…

不得不知的Aspera替代方案,让文件传输变得更轻松

aspera作为一款高效的文件传输工具&#xff0c;可以让用户在网络状况不佳时仍然能够进行快速的大文件传输。然而&#xff0c;由于aspera的高昂价格和复杂的部署难度&#xff0c;很多用户开始寻找aspera替代方案来解决文件传输问题。 1、CFT CFT是一款由BMC Software公司开发的…

中国法拍房数量统计预测模型_2023年法拍房数量竟是。。

法拍房主要平台 法拍房主要平台有3家&#xff0c;分别是阿里、京东和北交互联平台。目前官方认定纳入网络司法拍卖的平台共有7家&#xff0c;其中阿里资产司法拍卖平台的挂拍量最大。 阿里法拍房数据显示2017年&#xff0c;全国法拍房9000套&#xff1b;2018年&#xff0c;法…

mybatis与oracle数据库jdbcType类型对应关系

之前都是百度上搜的&#xff0c;各种对应的都有&#xff0c;总觉得有问题&#xff0c;最后直接通过跑代码查看了一下对应关系&#xff0c;我用的oracle是19c。 常见的对应关系如下 oracle类型jdbcTypeVARCHAR2JdbcType.VARCHARNVARCHARJdbcType.NVARCHARCHARJdbcType.CHARCLOB…

机器学习中的混沌工程:拥抱不可预测性以增强系统鲁棒性埃

一、介绍 在动态发展的技术世界中&#xff0c;机器学习 (ML) 已成为一股革命力量&#xff0c;推动各个领域的创新。然而&#xff0c;随着机器学习系统的复杂性不断增加&#xff0c;确保其可靠性和鲁棒性已成为首要问题。这就是混沌工程发挥作用的地方&#xff0c;混沌工程是一门…

Android Compose Transition 动画

Transition 是一种动画效果&#xff0c;用于在组件的状态之间进行平滑的过渡。它可以帮助我们在状态变化时&#xff0c;以一种流畅的方式更新 UI。通过使用 Compose 的 Transition API&#xff0c;您可以在应用中创建各种各样的动画效果&#xff0c;从而增强用户体验并提高应用…

Axure元件库使用与ProcessOn流程图

Axure元件库 自定义Axure元件库&#xff1a; 打开Axure RP软件&#xff0c;并点击菜单栏中的“元件库”选项&#xff0c;选择“新建元件库”。 在弹出的对话框中&#xff0c;选择一个文件夹来保存您的自定义元件库&#xff0c;并给它一个名称。 在Axure RP的主界面上&#x…

四、Java流程控制

第一章 流程控制语句 在一个程序执行的过程中&#xff0c;各条语句的执行顺序对程序的结果是有直接影响的。所以&#xff0c;我们必须清楚每条语句的执行流程。而且&#xff0c;很多时候要通过控制语句的执行顺序来实现我们想要的功能。 1.1 流程控制语句分类 ​ 顺序结构 …