[LeetCode] 232. 用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):

实现 MyQueue 类:

  • void push(int x) 将元素 x 推到队列的末尾
  • int pop() 从队列的开头移除并返回元素
  • int peek() 返回队列开头的元素
  • boolean empty() 如果队列为空,返回 true ;否则,返回 false

输入: ["MyQueue", "push", "push", "peek", "pop", "empty"] [[], [1], [2], [], [], []]

输出: [null, null, null, 1, 1, false]

解题思路:思路灰常简单,创建两个栈一个输出栈(pushst),另一个是输入栈(popst)来实现队列的输入,输出。将进栈的数据,放到pushst中,进行删除操作时,将pushst中的数据全部放入到popst中,获取第一个元素,然后删除它,后面按照这个思路一直进行即可

返回队列开头元素,如果popst中还有剩余元素,直接返回栈顶元素即可,若没有就将pushst中的元素放入到popst中再出栈顶元素

队列判空,如果pushst或者popst中有元素,则返回false,都没有元素则返回true

代码实现:

class MyQueue {void transmit(){while(!_pushst.empty()){_popst.push(_pushst.top());_pushst.pop();} }
public:MyQueue() {}void push(int x) {_pushst.push(x);}int pop() {if(_popst.empty()){transmit();}int front = _popst.top();_popst.pop();return front;}int peek() {if(_popst.empty()){transmit();}return _popst.top();}bool empty() {return _pushst.empty() && _popst.empty();}stack<int> _pushst, _popst;
};

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

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

相关文章

嵌入式开发中的 C 语言

目录 一、嵌入式与 C 语言的紧密关系 二、C 语言的特点与优势 &#xff08;二&#xff09;灵活的语法机制与直接访问硬件能力 &#xff08;三&#xff09;高效的运行效率 三、C 语言在嵌入式开发中的应用场景 &#xff08;一&#xff09;编译器与源代码转换 &#xff08;…

使用LSPatch+PlusNE修改手机软件

一、问题概述 国内使用一些软件&#xff0c;即使科学上网&#xff0c;打开都是网络错误&#xff0c;更换节点同样如此。 二、软件下载 通过官网或者正规商店(如Google play)下载并且安装。 是的&#xff0c;先要下载一个无法使用的版本&#xff0c;后续对其进行修改。 三、下…

Vulnhub打靶-matrix-breakout-2-morpheus

基本信息 靶机下载&#xff1a;https://pan.baidu.com/s/1kz6ei5hNomFK44p1QT0xzQ?pwdy5qh 提取码: y5qh 攻击机器&#xff1a;192.168.20.128&#xff08;Windows操作系统&#xff09; 靶机&#xff1a;192.168.20.0/24 目标&#xff1a;获取2个flagroot权限 具体流程 …

【AIGC】ChatGPT与人类理解力的共鸣:人机交互中的心智理论(ToM)探索

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;心智理论(Theory of Mind,ToM)心智理论在心理学与神经科学中的重要性心智理论对理解同理心、道德判断和社交技能的重要性结论 &#x1f4af;乌得勒支大学研究对ChatGPT-4…

深入 C 语言内存管理:优化策略与实践案例

目录 引言 C 语言内存管理机制概览 内存区域划分 内存对齐与填充 内存访问效率 内存管理优化策略 避免内存泄漏 减少内存碎片 优化结构体布局 提高内存访问效率 实践案例 案例一&#xff1a;智能指针实现 案例二&#xff1a;内存池实现 案例三&#xff1a;结构体…

PDT 数据集:首个基于无人机的高精密度树木病虫害目标检测数据集

2024-09-24&#xff0c;由中国山东计算机科学中心、北京大学等机构联合创建了Pests and Diseases Tree&#xff08;PDT&#xff09;数据集&#xff0c;目的解决农业领域中病虫害检测模型开发中专业数据集缺失的问题。通过集成公共数据和网络数据&#xff0c;进一步推出了Common…

MySQL程序介绍<一>

目录 MySQL程序简介 mysqld - MySQL 服务器 ​编辑 mysql - MySQL 命令⾏客⼾端 MySQL程序简介 1.MySQL安装完成通常会包含如下程序&#xff1a; Linux系统程序⼀般在 /usr/bin⽬录下&#xff0c;可以通过命令查看 windows系统⽬录&#xff1a; 你的安装路径\MySQL Server…

【LeetCode】123.买卖股票的最佳时间

清晰明了的思路是解决问题的至上法宝。如何把一个复杂的问题拆成简单的问题&#xff0c;就是我们需要考虑的。 1. 题目 2. 思想 这道题虽然是难题&#xff0c;但是思想比较简单。 题目要求说至多买卖两次&#xff0c;也就是说&#xff0c;也可以买卖一次&#xff0c;这种情况…

MySQL-16.DQL-分页查询

一.DQL-分页查询 -- 分页查询 -- 1. 从 起始索引0 开始查询员工数据&#xff0c;每页展示5条记录 select * from tb_emp limit 0,5; -- 2.查询 第1页 员工数据&#xff0c;每页展示5条记录 select * from tb_emp limit 0,5; -- 3.查询 第2页 员工数据&#xff0c;每页展示5条记…

数据中台业务架构图

数据中台的业务架构是企业实现数据驱动决策和业务创新的关键支撑。它主要由数据源层、数据存储与处理层、数据服务层以及数据应用层组成。 数据源层涵盖了企业内部各个业务系统的数据&#xff0c;如 ERP、CRM 等&#xff0c;以及外部数据来源&#xff0c;如社交媒体、行业数据…

ES-入门-javaApi-文档-新增-删除

新增指定索引的文档数据的代码如下&#xff1a; package com.atgulgu.es.test;import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.http.HttpHost; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexRe…

Java项目-基于springboot框架的校园在线拍卖系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…

webstorm 编辑器配置及配置迁移

1.下载地址 WebStorm&#xff1a;JetBrains 出品的 JavaScript 和 TypeScript IDE 其他版本下载地址 2.安装 点击下一步安装&#xff0c;可根据需要是否删除已有版本 注意&#xff1a; 完成安装后需要激活 3.设置快捷键 以下为个人常用可跳过或根据需要设置 如&#xff1a…

汇编实现逆序复制数据

一.实验目的 使其可以将10000H &#xff5e; 1000FH中的8个字&#xff0c;逆序复制到20000H &#xff5e; 2000FH中。 二.实验过程表示 三.部分汇编实现代码 mov ax,1000H ;将1000H放入AX寄存器中 mov ds,ax ;将AX寄存器中的内容放入DS寄存器中&#xff0c;这时候DS中存…

Amesim-代数环问题分析与解决办法

Amesim在仿真建模后&#xff0c;进入Simulation模块后&#xff0c;有时会出现代数环的问题&#xff08;如下图所示&#xff09;。Amesim中的代数环问题出现可能不会影响模型的计算&#xff0c;但是会导致计算速度变得缓慢。 当输入信号直接取决于输出信号&#xff0c;同时输出信…

Vue(4)脚手架Vuex

文章目录 脚手架前言render函数&#xff08;关于不同版本的Vue&#xff09;修改默认配置ref属性props配置mixin混入插件scopedlang总结TodoList案例浏览器的本地存储 Vuex简介1.概念2.使用Vuex 搭建环境Vuex案例基本使用 getters配置项vuex 与 vue 的类比四个map方法的使用范例…

SpringBoot项目启动报错:命令行太长解决

文章目录 SpringBoot项目启动报错&#xff1a;命令行太长解决1. 第一种方法1. 第二种方法1-1 旧版本Idea1-2 新版本Idea 3. 重新启动SpringBoot项目即可解决 SpringBoot项目启动报错&#xff1a;命令行太长解决 报错信息&#xff1a; 1. 第一种方法 1. 第二种方法 找到项目…

【Hive】8-Hive性能优化及Hive3新特性

Hive性能优化及Hive3新特性 Hive表设计优化 Hive查询基本原理 Hive的设计思想是通过元数据解析描述将HDFS上的文件映射成表 基本的查询原理是当用户通过HQL语句对Hive中的表进行复杂数据处理和计算时&#xff0c;默认将其转换为分布式计算 MapReduce程序对HDFS中的数据进行…

基于MATLAB图片拼接配准系统

MATLAB图片拼接配准系统应用背景 图像配准现在已成为数字图像处理的研究热点&#xff0c;方法繁多&#xff0c;站在时代的前沿。图像配准多采用基于图像特征点的方法&#xff0c;这种方法易于用计算机处理并且容易实现人机交互&#xff0c;其重点在于如何提取图像上的有效特征…

JavaScript的第二天

目录 一、运算符类型 1、算术运算符 2、前置递增递减运算符&#xff1a;先递增/递减&#xff0c;再返回值 3、后置递增递减运算符&#xff1a;先返回值&#xff0c;再递增递减 4、比较运算符&#xff1a;进行判断返回true和false值 5、逻辑运算符&#xff1a;与&#xff0c;或&…