【实战】ACM 选手图解 LeetCode 用栈实现队列

【实战】ACM 选手图解 LeetCode 反转链表 图解 LeetCode 206:反转链表 阅读详情

大家好呀,我是蛋蛋。

今天用栈实现队列这道题,是考察对”栈和队列理解程度“的好题。

放心,在实际工作的时候,不是脑残十级,几乎不会提出这样奇怪的需求。

话不多说,直接开整。

b690cb61fe7a0641e88ae71c7be33fd

LeetCode 232:用栈实现队列

题意

仅使用两个栈实现先入先出队列,队列支持一般队列支持的所有操作:

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

示例

a136f1763dc4b0004659ad76570c555

提示

  • 1 <= x <= 9
  • 最多调用 100 次 push、pop、peek 和 empty
  • 假设所有操作都是有效的(eg. 一个空的队列不会调用 pop 或者 peek 操作)

题目解析

水题,难度简单,主要考察对栈和队列的理解能力。

如果对栈和队列还不熟悉,看一下下面这篇文章,某帅比写的:

**呔!“栈”住,队列!

**

仔细来看,主要涉及 4 种常规操作:

  • 入队 push
  • 出队 pop
  • 判空 empty
  • 取队首元素 peek

知道了要求,剩下就是如何用栈模拟队列。

队列是一种先入先出(FIFO)的数据结构,而栈是一种后入先出(LIFO)的数据结构,所以一个栈绝对满足不了队列的 FIFO 的特性。

比如 1 2 3,队列 1 2 3 进,应该 1 2 3 出,但是 1 2 3 进了栈,出来以后会成 3 2 1,和 1 2 3 是相反的,所以再需要一个栈,把 3 2 1 返成 1 2 3。

因此这里需要两个栈,分别是输入栈和输出栈:

输入栈来反转元素的入队顺序,元素入只能从输入栈进(push)。

输出栈用来存储元素的正常顺序,元素出只能从输出栈出(pop、peek)。

图解

首先初始化输入栈和输出栈。

【实战】ACM 选手图解 LeetCode 删除字符串中的所有相邻重复项 图解 LeetCode 1047:删除字符串中的所有相邻重复项 阅读详情

相关推荐

【实战】ACM 选手图解 LeetCode 滑动窗口最大值

图解 LeetCode 239:滑动窗口最大值。

用有趣有味的方式,学习有价值的编程知识。 928

【实战】ACM 选手图解 LeetCode 有效的括号

图解 LeetCode 20:有效的括号

用有趣有味的方式,学习有价值的编程知识。 347

【实战】ACM 选手图解 LeetCode 反转字符串

图解 LeetCode 344:反转字符串。

用有趣有味的方式,学习有价值的编程知识。 363

【实战】ACM 选手图解 LeetCode 长度最小的子数组

图解 LeetCode 209:长度最小的子数组

用有趣有味的方式,学习有价值的编程知识。 1078

算法面试题单设计:从基础到进阶的系统化学习路径

算法是计算机科学的核心基础,其本质是通过特定计算模型解决实际问题的系统方法。从数据结构操作到复杂算法思想,系统化学习路径需要遵循认知规律,常见技术实现包括递归分治、动态规划等经典范式。在工程实践中,合理的题单设计能显著提升学习效率,特别是结合双指针、滑动窗口等高频解题技巧。针对算法面试场景,需要掌握时间复杂度分析、边界条件处理等关键技术要点,并应用于分布式系统、推荐算法等实际业务场景。本文提供的学习框架覆盖从数组操作到高级图论的全栈内容,特别适合准备技术面试的开发者系统化提升算法能力。

weixin_34379433的博客 359

Java算法进阶:蓝桥杯每日一题训练体系与国赛核心考点精讲

算法是计算机科学的核心基础,其本质是通过一系列指令高效解决特定问题的计算模型。理解算法原理,关键在于掌握数据结构与逻辑控制,这直接决定了程序的性能与可靠性。从工程实践角度看,算法能力是开发者解决复杂问题、优化系统性能的核心竞争力,广泛应用于搜索引擎、推荐系统、大数据处理等场景。对于Java开发者而言,系统化训练是提升算法实战能力的关键。本文聚焦于通过结构化、目标导向的刻意练习路径,帮助学习者攻克算法学习瓶颈。项目以蓝桥杯和国赛为训练目标,深入剖析了动态规划、搜索算法等核心考点,并提供了高效的五步训练法,旨在

weixin_33895657的博客 738

避开这些坑!QMT多因子策略实盘中的5个常见错误及解决方案

本文深入剖析了在QMT平台上实施多因子策略时常见的5个错误,包括因子过拟合、数据延迟处理不当、因子失效、交易成本低估和风险控制缺失,并提供了实用的解决方案。通过优化因子筛选、数据对齐和动态管理,帮助量化交易者提升策略稳健性和实盘表现。

k5l6m的博客 240

手把手排查IOMMU映射故障:从内核日志到硬件寄存器调试全指南

本文详细解析了IOMMU映射故障的排查方法,从内核日志分析到硬件寄存器调试,提供了一套完整的诊断流程。涵盖AMD和Intel平台的特定调试技巧,包括ATS协商失败、DMA传输错误等常见问题的解决方案,并介绍了高级调试工具链的搭建与性能优化策略。

weixin_42666036的博客 359

河道水位标尺识别预警 yolov7

河道水位标尺识别预警系统通过python+yolov7网络模型技术,河道水位标尺识别预警算法对河道水位标尺进行实时监测,当河道水位出现异常情况时,河道水位标尺识别预警算法将自动发出警报提示后台管理人员及时采取措施。YOLO系列算法是一类典型的one-stage目标检测算法,其利用anchor box将分类与目标定位的回归问题结合起来,从而做到了高效、灵活和泛化性能好,所以在工业界也十分受欢迎。Yolo模型采用预定义预测区域的方法来完成目标检测,具体而言是将原始图像划分为 7x7=49 个网格(grid),每

燧机科技的博客 2304

图像去模糊(二)——Richardson–Lucy算法

Richardson Lucy Algorithm(Richardson-Lucy算法详解及效果实例)

xueruhongchen的博客 3万+

Qt 插件开发 plugin 超详细 有源码

Qt 插件化开发框架类似于前后端的微服务的场景,授权哪个微服务则前端可以使用哪个微服务,插件就行硬件插卡一样,可以被随时删除、插入和修改,所以结构很灵活,容易修改,方便软件的升级和维护;插件主要面向接口编程,无需访问.lib文件,热插拔、利于团队开发。即使在程序运行时.dll不存在,也可以正常启动,只是相应插件功能无法正常使用而已;动态库需要访问.lib文件,而且在程序运行时必须保证.lib存在,否则无法正常启动;

q610098308的专栏 6548

一篇讲透:豆包、元宝、DeepSeek、Kimi、WorkBuddy,职场里到底怎么分工

这篇文章深入分析了当前主流AI工具(WorkBuddy、豆包、腾讯元宝、DeepSeek、Kimi)的特点和使用场景,帮助读者根据不同工作需求选择合适的AI助手。核心观点包括: AI工具各有所长:豆包适合快速创作初稿,元宝擅长信息检索整理,DeepSeek强于逻辑分析,Kimi专精文本处理,WorkBuddy则更适合任务推进和成果交付。 使用前需明确需求:是要创意发散、信息整理,还是任务执行?不同阶段应选用不同工具组合。 提供了6个具体职场场景的解决方案,包括文章创作、课程设计、会议纪要等,并给出详细的操作

weixin_39284145的博客 1万+

电路研究9.4——合宙Air780EP的LuatOS、CSDK跟标准AT

 C-SDK、AT指令、LuatOS

esmember的博客 1116

C# 从数秒到毫秒:MySQL+Redis百万数据优化实战全解析

在处理百万级数据时,传统单体数据库常面临查询效率低下、数据库负载过高和用户体验差等问题。为解决这些性能瓶颈,可以采用MySQL分库分表、Redis缓存和异步统计的组合策略。 数据库分片:通过水平分表和分库实现,将单表数据分散到多个物理表或数据库实例中,降低单点负载。 Redis缓存:利用Redis缓存高频数据,减少数据库查询压力,提升响应速度。 异步统计:通过消息队列(如RabbitMQ)解耦统计任务,后台处理非实时任务,避免阻塞主流程。 这些优化策略能够显著提升系统性能,确保在高并发和大数据量场景下的稳定

墨夶的博客 852

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 【实战】ACM 选手图解 LeetCode 逆波兰表达式求值
下一篇: 【实战】ACM 选手图解 LeetCode 用队列实现栈
编程文青李狗蛋
博客等级 码龄5年 27粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值