LeetCode 232. 用栈实现队列

2023-11-16

题目链接:https://leetcode.cn/problems/implement-queue-using-stacks/

栈的特点是先进后出,而队列的特点是先进先出,我们用两个栈正好能把顺序反过来实现类似队列的操作。

在这里插入图片描述

stackData 作为压入栈,向队尾添加的所有新元素只往 stackData 中压入;

stackTemp 作为临时栈,只有求队首元素和删除队首元素时才会用到 stackTemp 来颠倒元素顺序。

向队尾添加元素:

在这里插入图片描述

删除队首元素:

在这里插入图片描述

求队首元素:

在这里插入图片描述

C++代码如下:

class MyQueue {
public:
    stack<int> stackData, stackTemp;

    MyQueue() {

    }
    
    void push(int x) {
        stackData.push(x);
    }
    
    int pop() {
        while (!stackData.empty()) {
            stackTemp.push(stackData.top());
            stackData.pop();
        }
        int res = stackTemp.top();
        stackTemp.pop();
        while (!stackTemp.empty()) {
            stackData.push(stackTemp.top());
            stackTemp.pop();
        }
        return res;
    }
    
    int peek() {
        while (!stackData.empty()) {
            stackTemp.push(stackData.top());
            stackData.pop();
        }
        int res = stackTemp.top();
        while (!stackTemp.empty()) {
            stackData.push(stackTemp.top());
            stackTemp.pop();
        }
        return res;
    }
    
    bool empty() {
        return stackData.empty();
    }
};

/**
 * Your MyQueue object will be instantiated and called as such:
 * MyQueue* obj = new MyQueue();
 * obj->push(x);
 * int param_2 = obj->pop();
 * int param_3 = obj->peek();
 * bool param_4 = obj->empty();
 */
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode 232. 用栈实现队列 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • Linux grep 显示前后几行的信息

    grep 后面带上 A B C 参数可以多显示几行内容 grep A 5 可以显示匹配内容以及后面的5行内容 grep B 5 可以显示匹配内容以及前面的5行内容 grep C 5 可以显示匹配内容以及前后面的5行内容 cat size t
  • QGIS 使用矢量数据(shp)批量裁剪栅格数据(tif)

    前提描述 有一种情况是一个矢量数据有多个元素 比如A省有11个市 那么我用A省的矢量去裁剪栅格的时候 想直接输出11个市域独立的栅格结果 也就是输出11个栅格数据 这个在ArcGIS Pro和Arcmap目前还不能直接做到 用Python肯
  • 线程的三种实现方式

    一 继承Thread类 二 实现Runable接口 对于1 2两种方法应该都会知道的 即使在上java相关的课程中老师一般都会介绍这两种实现的方法 所以这里不赘述了 直接进入第三种第四种的实现方式 三 实现Callable接口 packag
  • 【项目设计】高并发内存池(三)[CentralCache的实现]

    C 学习历程 入门 博客主页 一起去看日落吗 持续分享博主的C 学习历程 博主的能力有限 出现错误希望大家不吝赐教 分享给大家一句我很喜欢的话 也许你现在做的事情 暂时看不到成果 但不要忘记 树 成长之前也要扎根 也要在漫长的时光 中沉淀养
  • QT中学习Opengl---(纹理基本加载opengl写法)

    前言 本文的代码是 LearnOpenGL 中对应代码 这里提供学习 大家喜欢的可去官方网站去看看 LearnOpenGL CNhttps learnopengl cn readthedocs io zh latest 本章为加载纹理 qt
  • 单链表 和 顺序表 实现的 通讯录

    通讯录 前言 通讯录 通讯录的逻辑 通讯录存储结构的选择 顺序表 数组 在堆区开辟的空间 柔性数组 单链表 单链表实现通讯录 进入页面设计 代码效果 看起来比较有那味了 通讯录属性的设计 主函数的设计 AddContact ShowCont
  • mysql内置函数,时间戳与时间类型互转

    from unixtime time stamp gt 将时间戳转换为日期 unix timestamp date gt 将指定的日期或者日期字符串转换为时间戳
  • 域格模组的模拟语音、PCM、I2S

    域格模组的模拟语音 PCM I2S 文章目录 域格模组的模拟语音 PCM I2S 一 域格模块里的音频功能 二 常见音频 传输 接口 1 介绍 2 一目了然的协议时序 I2S协议时序 PCM协议 二 模块中使用音频功能 一 域格模块里的音频
  • 基于MATLAB的车牌识别

    目录 车牌识别系统的介绍与展示 车牌定位 1 灰度处理 2 边缘检测 车牌分割 1 图像腐蚀 2 图像平滑 3 移除对象 4 图像切割 车牌识别 1 灰度处理 2 直方图均衡化 3 二值化 4 中值滤波 5 字符识别 车牌识别系统的介绍与展
  • 如何启动单节点zookeeper以及注意事项

    1 安装jdk 因为zookeeper是基于java进行开发的 2 将zookeeper解压之后 再zookeeper目录下conf目录下有一个zoo sample cfg 将它改名成zoo cfg 因为zookeeper启动时自动加载的是
  • QT获取各种平台系统版本信息之QSysInfo

    一 头文件 include
  • 小程序授权第三方平台

  • 数据分析初步认识

    今天的任务是阅读数据分析的概述 老师的建议是带着问题去学习 今天的任务结束之后 我要能回答为什么学习数据分析 所以 为了更好地记录我今天的学习 我决定边学边写博客 那么 开始吧 一 数据分析的含义 作用和分类 数据分析就是一个基于一定目的
  • vue运用animate.css设置transition动画

    vue的transition动画 关于vue中animation动画问题 找到要用动画的元素 我是想要实现切换页面的动画效果 所以找到app vue中的router view 用transition将它包裹起来 用动画库animate cs
  • PCB Layout经验

    1 旁路电容尽量靠近IC脚 这样对整个电路的抗干扰能力有很大的帮助 2 布局的时候 可以把零件尽量对齐 可以增加板子美观 3 多层板的顶层IC底部 最好铺一下铜 有助于IC散热以及抗干扰 4 贴片IC的管脚不要做的太长 防止IC在SMT贴片
  • 移动端使用fastclick解决click延迟300毫秒

    做移动端商城使用click会出现大约300毫秒的延迟 为了能够立即响应用户的点击事件 会用到FastClick 一 安装 npm i fastclick save 二 使用 在main js中引入 import FastClick from
  • reGeorg的工具原理

    首先先创建一个socket去运行 去连接想要连接的端口 reGeorgSocksProxy客户端与服务端的通讯是基于session来区分的 并不支持在指定的session下进行 socket set nonblock 设置socket为非阻
  • 碳中和数据合集(含上市公司碳排放、碳减排、排污费、环境税等数据)1990-2022年

    数据简介 推动企业形成绿色生产方式和生活方式 支持有条件的地方和重点行业 重点企业率先达到碳排放峰值 可见 企业已成为应对气候变化 推动低碳转型 助力 双碳 目标实现的主力军 推动其绿色 低碳化转型已成为未来经济发展的必然趋势 此背景下 作
  • linux环境下运行flex,什么是flex?

    昨天装一个软件的时候 configure后遇到下面的问题 错误代码见最后 网上查到有什么 FLEX 2 01 全套下载 客户端 Flex Builder 2 with Charting 集成 Flex Builder 2 Flex 2 SD
  • LeetCode 232. 用栈实现队列

    题目链接 https leetcode cn problems implement queue using stacks 栈的特点是先进后出 而队列的特点是先进先出 我们用两个栈正好能把顺序反过来实现类似队列的操作 stackData 作为