[剑指offer][JAVA]面试题第[09]题[用两个栈实现队列][LinkedList]

【问题描述】[简单]

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出:[null,null,3,-1]

【解答思路】

一个栈添加元素 一个栈逆转数组

在这里插入图片描述
时间复杂度:O(N^2) 空间复杂度:O(1)

class CQueue {
LinkedList<Integer> A, B;public CQueue() {A = new LinkedList<Integer>();B = new LinkedList<Integer>();}public void appendTail(int value) {A.offer(value);}public int deleteHead() {if(!B.isEmpty()){return B.poll();}if(A.isEmpty()){return -1;}while(!A.isEmpty()){B.add(A.poll());}return B.poll();}
}

【总结】

1.栈使用LinkedList,不使用Stack(Stack继承Vector,本质数组,效率低)

参考文章https://mp.weixin.qq.com/s/Ba8jrULf8NJbENK6WGrVWg

2.LinkedList 基本使用

添加
在这里插入图片描述
删除
在这里插入图片描述
获取
在这里插入图片描述
队列 offer/add poll/remove peek
在这里插入图片描述
offer/push poll/pop peek
在这里插入图片描述
在这里插入图片描述
总结
在这里插入图片描述

3.两个栈可以有很多扩展

题目动画详解参考链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/solution/mian-shi-ti-09-yong-liang-ge-zhan-shi-xian-dui-l-2/

LinkedList参考链接:https://www.cnblogs.com/yijinqincai/p/10964188.html

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

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

相关文章

html:(23):css代码语法和css注释语法

CSS代码语法 css 样式由选择符和声明组成&#xff0c;而声明又由属性和值组成&#xff0c;如下图所示&#xff1a; 选择符&#xff1a;又称选择器&#xff0c;指明网页中要应用样式规则的元素&#xff0c;如本例中是网页中所有的段&#xff08;p&#xff09;的文字将变成蓝色&…

FFmpeg开发实战(三):FFmpeg 打印音视频Meta信息

在之前使用FFmpeg命令行的时候&#xff0c;我们经常看到FFmpeg命令行在输出音视频文件的会打印一下文件的Meta信息&#xff0c;类似如图&#xff1a; 那么我们如何通过代码的方式输出这些Meta信息呢&#xff1f; FFmpeg提供了一个API专门用来打印多媒体文件的格式 —— av_dump…

html:(24):内联式css和嵌入式css

内联式css样式&#xff0c;直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢&#xff1f;从CSS 样式代码插入的形式来看基本可以分为以下3种&#xff1a;内联式、嵌入式和外部式三种。这一小节先来讲解内联式。 内联式css样式表就是把css代码直接写在现有的HTML标签中&am…

[剑指offer][JAVA]面试题第[10-1]题[斐波那契数列][动态规划][记忆化递归]

【问题描述】[中等] 写一个函数&#xff0c;输入 n &#xff0c;求斐波那契&#xff08;Fibonacci&#xff09;数列的第 n 项。斐波那契数列的定义如下&#xff1a;F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始&#xff0c;之后的…

js生成的cookie在yii2中获取不到的解决办法

在js中创建的cookie&#xff0c;默认用yii2中自带的方法Yii::$app->request->cookies->get(abc)获取不到&#xff0c;而用$_COOKIE[abc]又是能获取到&#xff0c;则是以下原因照成的。 查看E:\myYiiDemo\vendor\yiisoft\yii2\web\Request.php中的1218行不难看出&#…

html:(25):选择器定义和标签选择器

什么是选择器&#xff1f; 每一条css样式声明&#xff08;定义&#xff09;由两部分组成&#xff0c;形式如下&#xff1a; 选择器{样式; } 在{}之前的部分就是“选择器”&#xff0c;“选择器”指明了{}中的“样式”的作用对象&#xff0c;也就是“样式”作用于网页中的哪些…

[剑指offer][JAVA]面试题第[64]题[求1+2+…+n][逻辑运算符]

【问题描述】[中等] 求 12...n &#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&#xff09;。输入: n 3 输出: 6【解答思路】 1. 递归&#xff08;不合符题意&#xff09; 时间复杂度&#xff1a;O(N^2) 空间…

Celery工具

什么是Celery Celery的功能 Celery是基于python实现的第三方组件&#xff0c;可以实现定时任务、周期任务等。 Celery的组成 Celery的角色 - 任务,创建或发布任务。 - 使用redis/rabbitMQ进行任务记录(broker)和任务返回结果&#xff08;backend)的缓存。 - worker&#xff0c;…

POJ-3061 尺取

题意就是 在P张书页中 其中有重复元素 选取最小连续区间内包括了这期间的所有不同的数 求符合条件的最小区间长度 本题可以用尺取法所谓尺取 就是选取两个下标 s e 分别指向当前扫面区间的首尾开始赋值都是1 然后分析数串 把e向后移 找到一种符合条件的区间后再把s向后移不断判…

html:(26):类选择器和id选择器

类选择器 类选择器在css样式编码中是最常用到的&#xff0c;如右侧代码编辑器中的代码:可以实现为“胆小如鼠”、“勇气”字体设置为红色。 语法&#xff1a; .类选器名称{css样式代码;} 注意&#xff1a; 1、英文圆点开头 2、其中类选器名称可以任意起名&#xff08;但不…

[剑指offer][JAVA]面试题第[10-2]题[青蛙跳台阶问题][动态规划][递归]

【问题描述】[中等] 一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e97&#xff08;1000000007&#xff09;&#xff0c;如计算初始结果为&#xff1a;1000000008&#xff0c;请返回 1。【解答思路…

SpringCloud(三)之Feign实现负载均衡的使用

一 点睛 Feign是Netflix开发的声明式、模板化的HTTP客户端&#xff0c; Feign可以帮助我们更快捷、优雅地调用HTTP API。 在Spring Cloud中&#xff0c;使用Feign非常简单——创建一个接口&#xff0c;并在接口上添加一些注解&#xff0c;代码就完成了。Feign支持多种注解&…

Bound Found POJ - 2566 (尺取+前缀和)

题意 就是给一串序列 在给一个t 求一段区间的加和绝对值与t最小的值与区间左右端点是多少 思路 这道题一开始不知道如何去做 用尺取法求区间但是因为区间中存在负数没有单调性 没有特殊的特征 若对区间求一下前缀和 就使整个区间有了单调性 由于绝对值情况下 没有前后 所以…

[剑指offer][JAVA]面试题第[11]题[旋转数组的最小数字][二分法][分治]

【问题描述】[简单] 把一个数组最开始的若干个元素搬到数组的末尾&#xff0c;我们称之为数组的旋转。输入一个递增排序的数组的一个旋转&#xff0c;输出旋转数组的最小元素。例如&#xff0c;数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转&#xff0c;该数组的最小值为1。 示…

html:(27):类和ID选择器的区别和子选择器

类和ID选择器的区别 学习了类选择器和ID选择器&#xff0c;我们会发现他们之间有很多的相似处&#xff0c;是不是两者可以通用呢&#xff1f;我们不要着急先来总结一下他们的相同点和不同点&#xff1a; 相同点&#xff1a;可以应用于任何元素不同点&#xff1a; 1、ID选择器…

对象的释放Dispose和Close对比

C#内存释放的几个方法对比&#xff1a; 而Close与Dispose这两种方法的区别在于&#xff0c;调用完了对象的Close方法后&#xff0c;此对象有可能被重新进行使用&#xff1b;而Dispose方法来说&#xff0c;此对象所占有的资源需要被标记为无用了&#xff0c;也就是此对象被销毁了…

html:(28):后代选择器和通用选择器

包含(后代)选择器 包含选择器&#xff0c;即加入空格,用于选择指定标签元素下的后辈元素。如右侧代码编辑器中的代码&#xff1a; .first span{color:red;} 这行代码会使第一段文字内容中的“胆小如鼠”字体颜色变为红色。 请注意这个选择器与子选择器的区别&#xff0c;子…

ZOJ -3203 三分+数学

题意&#xff1a;给出光的高度&#xff0c;人的高度&#xff0c;还有屋子的宽度本题就是要求人站在什么地方影长最长 输出最长的影长数学题可以把这道题的分段公式推出来然后分类讨论x在不同的范围获得不同的大小或者把影长公式推出来发现是凸函数 可以求极值点 然后三分求 三…

Java异常面试题

Java异常架构与异常关键字Java异常简介Java异常架构1. Throwable2. Error&#xff08;错误&#xff09;3. Exception&#xff08;异常&#xff09;运行时异常编译时异常4. 受检异常与非受检异常受检异常非受检异常Java异常关键字Java异常处理声明异常抛出异常捕获异常如何选择异…

html:(29):伪选择符和分组选择符

伪类选择符 更有趣的是伪类选择符&#xff0c;为什么叫做伪类选择符&#xff0c;它允许给html不存在的标签&#xff08;标签的某种状态&#xff09;设置样式&#xff0c;比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色&#xff1a; a:hover{color:red;} 上面…