发布时间:2026/7/14 15:30:58
[LeetCode] 232、用栈实现队列 题目描述使用栈实现队列的下列操作push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。参考代码核心思路用两次「后进先出」凑出「先进先出」栈的特性是后进先出队列的特性是先进先出两者顺序完全相反。一个栈只能反转一次顺序那用两个栈连续反转两次整体顺序就会恢复成原本的入队顺序从而模拟出队列的效果。两个栈的分工我们给两个栈分配固定职责避免来回倒腾元素输入栈inStack只负责接收新加入的元素所有 push 操作直接往这里塞。输出栈outStack只负责弹出和查看队头元素所有 pop / peek 都从这里取。核心规则只有当输出栈为空时才把输入栈里的所有元素一次性全部倒入输出栈。// 该题解有一些异常输入没处理可用“全局变量”的方式处理一下就好classMyQueue{public:/** Initialize your data structure here. */MyQueue(){}/** Push element x to the back of queue. */voidpush(intx){stack1.push(x);}/** Removes the element from in front of queue and returns that element. */intpop(){if(stack2.empty()){while(!stack1.empty()){stack2.push(stack1.top());stack1.pop();}}if(!stack2.empty()){intresstack2.top();stack2.pop();returnres;}return-1;}/** Get the front element. */intpeek(){if(stack2.empty()){while(!stack1.empty()){stack2.push(stack1.top());stack1.pop();}}if(!stack2.empty())returnstack2.top();return-1;}/** Returns whether the queue is empty. */boolempty(){if(stack1.empty()stack2.empty())returntrue;elsereturnfalse;}private:stackintstack1;// 进队列stackintstack2;// 出队列};/** * 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(); */补充用队列实现栈参考思路在非空的队列里面操作boolg_invalidInputfalse;classMyStack{public:/** Initialize your data structure here. */MyStack(){// nothing}/** Push element x onto stack. */voidpush(intx){if(!q1.empty())q1.push(x);elseq2.push(x);}/** Removes the element on top of the stack and returns that element. */intpop(){if(!q1.empty()){intnumq1.size();while(num!1){q2.push(q1.front());q1.pop();num--;}intresq1.front();q1.pop();returnres;}else{intnumq2.size();while(num!1){q1.push(q2.front());q2.pop();num--;}intresq2.front();q2.pop();returnres;}g_invalidInputtrue;return-1;}/** Get the top element. */inttop(){if(!q1.empty()){returnq1.back();}else{returnq2.back();}g_invalidInputtrue;return-1;}/** Returns whether the stack is empty. */boolempty(){if(q1.empty()q2.empty())returntrue;elsereturnfalse;}private:queueintq1,q2;};/** * Your MyStack object will be instantiated and called as such: * MyStack* obj new MyStack(); * obj-push(x); * int param_2 obj-pop(); * int param_3 obj-top(); * bool param_4 obj-empty(); */

相关新闻

2026/7/14 15:25:58

终极技能打包指南:如何自动化验证和打包Claude技能

终极技能打包指南:如何自动化验证和打包Claude技能 【免费下载链接】compound-engineering-plugin Official Compound Engineering plugin for Claude Code, Codex, Cursor, and more 项目地址: https://gitcode.com/GitHub_Trending/ev/compound-engineering-plu…

2026/7/14 16:31:05

双RTX 2080 Ti通过NVLink部署大模型:低成本实现70B参数推理方案

如果你手头有两张RTX 2080 Ti显卡,却苦于无法有效利用它们来运行大语言模型,这篇文章正是为你准备的。很多人认为老显卡在大模型时代已经力不从心,但实际情况可能出乎你的意料——通过合理的配置,双2080 Ti组合不仅能流畅运行35B参…

2026/7/14 16:31:05

终极指南:如何快速安装fpocket蛋白质口袋检测工具

终极指南:如何快速安装fpocket蛋白质口袋检测工具 【免费下载链接】fpocket fpocket is a very fast open source protein pocket detection algorithm based on Voronoi tessellation. The platform is suited for the scientific community willing to develop ne…

2026/7/14 16:31:05

YOLO 实战入门:从网络结构到损失函数,手把手代码解析

1. YOLOv1快速入门:5分钟搞懂核心思想第一次接触YOLO时,我被它的设计哲学惊艳到了——原来目标检测可以如此简单高效!想象你站在高楼俯瞰十字路口,不需要逐个观察每辆车,一眼就能同时识别所有车辆的位置和类型&#xf…

2026/7/14 16:31:05

3分钟解锁网易云音乐:免费NCM文件转换终极指南

3分钟解锁网易云音乐:免费NCM文件转换终极指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经在网易云音乐下载了心爱的歌曲&#xff0…

2026/7/14 12:47:32

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/13 14:26:14

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/13 18:07:53

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/14 0:04:21

5分钟掌握足球PBR材质制作:Photoshop与Unity高效工作流

1. 项目概述:为什么是足球PBR材质?在游戏开发,尤其是体育竞技类游戏的制作中,一个看起来“对味”的足球,往往比我们想象中更重要。它不仅是赛场上的核心道具,更是玩家视觉焦点和沉浸感的重要来源。一个塑料…

2026/7/14 0:04:21

ChatGPT联网搜索失败,92%开发者误判为网络问题——真实根因竟是LLM推理会话上下文污染导致Search Agent进程静默退出(含strace复现脚本)

更多请点击: https://intelliparadigm.com 第一章:ChatGPT 联网搜索失败 当 ChatGPT 的联网搜索功能无法正常工作时,用户常遇到“搜索不可用”“未连接到互联网”或空白响应等现象。该问题并非模型本身缺陷,而是由权限配置、网络…

2026/7/14 12:47:31

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…