剑指 Offer 09: 用两个栈实现队列

news2024/12/25 6:00:34

简单明了,带你直接看懂题目和例子。 输入: ["CQueue","appendTail","deleteHead","deleteHead"] 这里是要执行的方法,从左到右执行

[[],[3],[],[]]对应上面的方法,是上面方法的参数。CQueue和deleteHead方法不需要指定数字,只有添加才需要指定数字

1.创建队列,返回值为null

2.将3压入栈,返回值为null

3.将栈底的元素删除,也就是消息队列中先进来的元素,所以是deleteHead,返回该元素的数值,所以为3

4.继续删除栈底的元素,但是没有元素了,所以返回-1

所以就有了下面的输出 输出:[null,null,3,-1]

示例 2: 输入: ["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]

[[],[],[5],[2],[],[]]

1.创建队列,返回值为null

2.删除栈底的元素,但是没有元素,所以返回-1

3.把5压入栈,返回null

4.把2压入栈,返回null

5.删除栈底的一个元素,也就是消息队列中先进来的元素,所以是deleteHead,就是最先进来的5,返回值为5,

6.删除栈底的一个元素,就是后进来的2,返回值为2,

所以就有了下面的输出

输出:[null,-1,null,null,5,2]

有没有发现先进来的数字,首先显示出来了,但是题目中说要使用栈,栈是先进后出的,使用栈来实现先进先出,在这里使用两个栈就好了,从一个进来再到另一个栈,这样顺序就是先进先出了。题目的主旨写在第一句,就是,使用两个栈实现一个队列。

这道题用LinkedList来解决

Queue是一个接口,LinkedList是实现了Queue的一个类。

Deque也是一个接口,LinkedList也实现了Deque接口。

A和B定义的地方错了,应该在函数外 

注意,A中元素只在清楚head时有用,所以不用过多处理 

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

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

相关文章

Android Fragment跳转Activity使用startActivityForResult获取返回值

前言 Fragment跳转Activity使用startActivityForResult获取返回值 如果直接获取是获取不到结果的 需要在fragment所属的activity中遍历 Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resul…

智驾差异化周期下的「芯」风向

随着中国市场进入智能驾驶「差异化」竞争周期,车企对于核心算力芯片的可选项,正在变得越来越多。一方面,车企在寻求更高性价比的替代(升级)方案;另一方面,多元化的需求(舱泊一体、行…

解决获取taro全局配置文件失败,找不到配置文件失败问题

问题:这会导致项目初始化不成功,即要用vuets生成项目的话,依旧是wxml,js的文件,而不是vue文件 解决一:首先找到配置文件目录 删除taro开头的三项文件,再去node_modules下删除tarojs 然后去终…

Excel怎么设置密码?这4个方法必须掌握!

案例:做报表时有些很重要的数据不想被别人改动,Excel怎么设置密码呀? 【用Excel制作一些报表时怎么为Excel设置密码呢?因为有些数据比较重要,想将Excel设置密码。请大家帮帮我!】 Excel是一款常用的电子表…

推荐几个好用的AI 工具

文章目录 思维导图gmindAI文档写作工具notion aiAI 辅助阅读工具:ChatDOCAI 笔记软件& 知识库:FlowUsAI 一键生成 PPT:ChatPPT、MotionGo专业 PPT 插件:iSlideAI 智能设计工具:Logosc 标小智 思维导图gmind https:…

Linux内核中内存管理相关配置项的详细解析4

接前一篇文章:Linux内核中内存管理相关配置项的详细解析3 二、SLAB allocator options 1. Choose SLAB allocator 此选项选择一个slab分配器。 此项展开后如下图所示: SLAB 对应配置变量为:CONFIG_SLAB。 内核源码详细解释为&#xff1a…

Vue3 + TS + Vite —— 大屏可视化 项目实战

前期回顾 Vue3 Ts Vite pnpm 项目中集成 —— eslint 、prettier、stylelint、husky、commitizen_彩色之外的博客-CSDN博客搭建VIte Ts Vue3项目并集成eslint 、prettier、stylelint、huskyhttps://blog.csdn.net/m0_57904695/article/details/129950163?spm1001.2014…

一年肝4个项目,10万+行代码,面试妥妥的

大家好,我是冰河~~ 最近很多小伙伴私信问我:目前所在的公司工资比较低,已经很久没有涨薪了,想跳槽,找一份工资更高的工作,但是苦于平时所做的项目就是一些简单的CRUD操作,没有什么技术含量&…

习惯了VSCode的快捷键,如何让HbuilderX快捷键也和VSCode一样?

hbuilderX uni-app 自定义快捷键无效、无法生效解决方法(附:好用的常用的快捷键自定义代码片段)_你挚爱的强哥的博客-CSDN博客才能让原有默认的快捷键被覆盖。https://blog.csdn.net/qq_37860634/article/details/131161953

如何在 Python 中给请求设置用户代理 User-Agent

文章目录 了解 HTTP 标头的工作原理在 Python 中获取用户代理数据在 Python 中使用请求设置用户代理值在 Python 中为请求版本 2.12 设置用户代理请求在 Python 中为请求版本 2.13 设置用户代理请求 本文介绍 HTTP 标头用户代理主题以及如何使用 Python 中的请求设置用户代理。…

Python实验: tkinker 的实践

一、实验内容 1、登录界面 2、制作菜单栏 3、实现聊天窗口 4、访问本地一张照片并展示 二、实验过程 1、 import tkinter as tk import tkinter.messagebox import pickleroot tkinter.Tk() root.geometry(400x300) root.title("武理工欢迎你!")# 画布…

2023-6-11-第二式抽象工厂模式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

【macbookpro】重装ventura系统

intel 的cpu 的macbook pro 13寸定制版本。 大神们遇到的问题很专业 格式化 mac数据恢复 更新软件 通过“macOS 恢复”重新安装 macOS 大神们说固件是因为时间不对,从美国服务器下载的 打开日志,我看了下我的时间也不对 好像至少要下载2个文件,一…

MATLAB涡度通量数据处理实践技术应用

基于MATLAB语言、以实践案例为主,提供代码、原理与操作结合 1、以涡度通量塔的高频观测数据为例:基于MATLAB开展上机操作 2、涡度通量观测基本概况:观测技术方法、数据获取与预处理等 3、涡度通量数据质量控制:通量数据异常值识…

EPICS boRecord驱动程序编写和使用示例

以下示例程序将展示如何使用gpio的动态链接库编写一个boRecord的驱动程序,并且展示如何使用这个程序,控制一个LED灯的亮灭。 1) 新建这个示例程序的顶层目录,并且用makeBaseApp.pl在新建目录中构建这个IOC程序程序框架&#xff1…

前端项目安全扫描出来的漏洞——解决过程

为什么要升级,如图云桌面(相当于堡垒机-远程桌面)的项目审查是大概基于node16版本进行扫描的,本来我方是通过降版本从14到12绕过大范围更新,但现在躲得过初一躲不过十五,如何更新 package-lock.json 中的一…

HummerRisk获中国开源创新大赛优秀奖

日前,2022中国开源创新大赛落下帷幕,最终HummerRisk 荣获优秀奖。 5月31日,2022中国互联网发展创新与投资大赛暨2022年中国开源创新大赛在京落下帷幕。大赛由中央网信办信息化发展局指导,中国互联网发展基金会、中国网络空间研究院…

聚观早报 |特斯拉11天涨2000亿美元;三星正开发自有大型语言模型

今日要闻:特斯拉11天涨2000亿美元;三星正开发自有大型语言模型;苹果史上最贵新品遇冷;抖音外卖终止1000亿元GMV目标;12306试行在线选铺服务 特斯拉11天涨2000亿美元 特斯拉在 11 天的时间里市值增加了超过 2000 亿美元…

windows 服务程序和桌面程序集成(三)UDP监控工具

系列文章目录链接: windows 服务程序和桌面程序集成(一)概念介绍windows 服务程序和桌面程序集成(二)服务程序windows 服务程序和桌面程序集成(三)UDP监控工具windows 服务程序和桌面程序集成&…

基本线性分组码与性能参数及差错控制

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 基本线性分组码与性…