leetcode面试题 03.04. 化栈为队

news2024/9/29 14:28:24

实现一个MyQueue类,该类用两个栈来实现一个队列。

 

示例:

MyQueue queue = new MyQueue();

queue.push(1);
queue.push(2);
queue.peek();  // 返回 1
queue.pop();   // 返回 1
queue.empty(); // 返回 false

 

说明:

  • 你只能使用标准的栈操作 -- 也就是只有 push to toppeek/pop from topsize 和 is empty 操作是合法的。
  • 你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。
  • 假设所有操作都是有效的 (例如,一个空的队列不会调用 pop 或者 peek 操作)。

// 双栈
var MyQueue = function() {
    this.inStack = [];
    this.outStack = [];
};

MyQueue.prototype.push = function(x) {
    this.inStack.push(x);
};

MyQueue.prototype.pop = function() {
    if (!this.outStack.length) {
        this.in2out();
    }
    return this.outStack.pop();
};

MyQueue.prototype.peek = function() {
    if (!this.outStack.length) {
        this.in2out();
    }
    return this.outStack[this.outStack.length - 1];
};

MyQueue.prototype.empty = function() {
    return this.outStack.length === 0 && this.inStack.length === 0;
};

MyQueue.prototype.in2out = function() {
    while (this.inStack.length) {
        this.outStack.push(this.inStack.pop());
    }
};
 

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

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

相关文章

SpringBoot学习笔记(2)

1.静态文件访问 使用IDEA创建Spring Boot项目,会默认创建出classpath:/static/目录,静态资源一般放在这个目录下即可。 如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤策略。 1.1直接访问 在application.properties中…

在线远程考试|基于springBoot的在线远程考试系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书(可指定任意题目) 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 信息数据从传统到当代,是一直在变革当中,突…

增强免疫力的9种食物,秋冬尤其要多吃,营养美味又健康!

随着秋风渐起,冬日的脚步也越来越近!这时候,咱们的身体可是需要更多的关爱和呵护。说到秋冬养生,增强免疫力是头等大事。今天就来跟大家聊聊,那些既营养美味,又能帮我们提升免疫力的9种超级食物&#xff0c…

关于将inet引入的相关问题

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&am…

Android 简单实现联系人列表+字母索引效果

效果如上图。 Main Ideas 左右两个列表左列表展示人员数据,含有姓氏首字母的 header item右列表是一个全由姓氏首字母组成的索引列表,点击某个item,展示一个气泡组件(它会自动延时关闭), 左列表滚动并显示与点击的索引列表item …

UDS_1_基础知识

一. 概述 什么是UDS UDS: Unified Diagnostic Service, 统一诊断服务。 UDS是一个在整个汽车系统上经常使用的设备维护协议。其主要遵循:ISO-15765、ISO-14229 等协议。经常应用在整车的各种ECU上面。是一个在整车ECU应用层开发常用的协议之一。 UDS用途: 可以通过诊断…

【Python基础(二)】面向对象

学习分享 1、初始对象1.1、类的定义和使用1.2、类的私有成员和方法1.3、类的构造方法 2、继承的实现和属性的使用 1、初始对象 1.1、类的定义和使用 1.2、类的私有成员和方法 class Clock:id Noneprice Nonedef ring(self):import winsoundwinsound.Beep(2000,3000)clock Clo…

走近Z世代——感受约克VRF天氟地水中央空调营造的多重舒适体验

“我对于约克VRF中央空调最满意之处,就在于这个品牌对用户体验的极致追求。”来自浙江绍兴的范先生,在提到自家安装的约克VRF天氟地水中央空调时发出了如此感慨。作为“Z世代”的一员,年轻的范先生与所有95后年轻人一样,有着自身的独特审美需求,有对潮流的想法和坚持,更有着生活…

被问界/理想赶超!奔驰CEO再度“出马”,寻找中国外援

来自中国车企的全方位、持续施压,让大部分外资车企开始寻求更多的本地化合作来实现技术升级。传统豪华品牌也同样如此。 本周,知情人士透露,梅赛德斯奔驰首席执行官Ola Kllenius计划再次访问中国,目的是进一步寻求和扩大与本地技术…

矩阵系统源码搭建,OEM贴牌,源头技术开发

一、引言 矩阵系统在当今的数字化时代中发挥着重要的作用,无论是在社交媒体管理、内容分发还是数据分析等方面,都有着广泛的应用。本文将详细介绍矩阵系统源码搭建所需准备的内容,帮助开发者更好地理解和实施矩阵系统的搭建过程。 二、技术选…

集合框架 - Map双列集合

01 概述 02 常用方法 03 遍历方式 【快捷键】&#xff1a;ctrlaltv 【说明】&#xff1a;Map.Entry<xx,xx>中&#xff0c;Entry是Map集合中的一个接口&#xff0c;但接口是不能创建对象的&#xff0c;它底层是通过使用Entry的实现类对象来封装键值对数据的。 【说明】&a…

Transformer架构分析

1 encoder 每个称之为一个layer&#xff0c;重复N次 每个里面有两个sublayer&#xff1b;multi-head self-attention MLP后面使用layer normalization LayerNorm(x Sublayer(x)) 残差连接需要两个维度一致&#xff0c;本文采用513。 2 decoder 3 注意力机制 输出维度和val…

华为OD机试 - 匿名信(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

测试管理新增视图与高级搜索功能,测试计划支持一键生成缺陷详情,MeterSphere开源持续测试工具v3.3版本发布

2024年9月29日&#xff0c;MeterSphere开源持续测试工具正式发布v3.3版本。 在这一版本中&#xff0c;接口测试方面&#xff0c;接口导入功能支持导入Postman、JMX、HAR和MeterSphere格式的文件&#xff0c;接口场景的自定义请求步骤支持cURL快捷导入&#xff1b;测试管理方面…

大数据实时数仓Hologres(一):Hologres 简单介绍

文章目录 Hologres 简单介绍 一、什么是实时数仓 Hologres 二、产品优势 1、专注实时场景 2、亚秒级交互式分析 3、统一数据服务出口 4、开放生态 5、MaxCompute查询加速 6、计算存储分离架构 三、应用场景 搭建实时数仓 四、产品架构 1、Shared Disk/Storage &am…

sql注入工具升级:自动化时间盲注、布尔盲注

项目地址&#xff1a;https://github.com/iamnotamaster/sql-injecter 给我之前写的sql注入脚本进行了一些升级&#xff0c;此文章就是对升级内容的分析&#xff0c;升级内容如下&#xff1a; 使用占位符foo来填充payload里需要经常修改的部分 自动判断循环 支持爆破和二分查…

UE4_Niagara基础实例—6、蓝图与粒子系统的通信

效果图&#xff1a; 分析&#xff1a; 通过键盘按键来修改粒子系统粒子的大小。 步骤&#xff1a; 1、粒子系统使用上一个实例的粒子系统&#xff0c;大体参数如下&#xff1a; 参数都是乱调的&#xff0c;自己可以随意设置&#xff0c;只注重方法而不在意好看&#xff0c;汗…

求5X5的次小值/次大值

我们知道&#xff0c;求最大值和最小值是比较容易的&#xff0c;就是通过分组判断&#xff0c;然后再次比较即可求出&#xff0c;那么求出次小值/次大值怎么实现呢&#xff0c;本文提供一个设计的思路。 以5x5为例&#xff0c;求出次小值&#xff0c; 第一步&#xff0c;先分…

H5 随机身份证号码、社会统一信用代码、手机号、名字、银行卡号码

平时注册可能会用到这些&#xff0c;原本用自己服务器搭了个&#xff0c;感觉纯前端的还能引入到项目中挺好的&#xff0c;之后再追加一些常用的随机数据&#xff0c;这样写表单应该就会好测试了(●’◡’●)。 在线链接 https://linyisonger.github.io/H5.Examples/?name./07…

华为OD机试 - 箱子之字形摆放(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…