[剑指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;之后的…

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) 空间…

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。【解答思路…

[剑指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;子…

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;} 上面…

[Leedcode][JAVA][第837题][新21点][动态规划][数学]

【问题描述】[中等] 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏&#xff0c;描述如下&#xff1a;爱丽丝以 0 分开始&#xff0c;并在她的得分少于 K 分时抽取数字。 抽取时&#xff0c;她从 [1, W] 的范围中随机获得一个整数作为分数进行累计&#xff0c;其中 W 是…

html:(30):继承和特殊性

继承 CSS的某些样式是具有继承性的&#xff0c;那么什么是继承呢&#xff1f;继承是一种规则&#xff0c;它允许样式不仅应用于某个特定html标签元素&#xff0c;而且应用于其后代。比如下面代码&#xff1a;如某种颜色应用于p标签&#xff0c;这个颜色设置不仅应用p标签&…

[剑指offer][JAVA]面试题第[12]题[矩阵的路径][DFS][剪枝]

【问题描述】[中等] 请设计一个函数&#xff0c;用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始&#xff0c;每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格&#xff0c;那么该路径不能再次进入…

html:(31):层叠和重要性

层叠 我们来思考一个问题&#xff1a;如果在html文件中对于同一个元素可以有多个css样式存在并且这多个css样式具有相同权重值怎么办&#xff1f;好&#xff0c;这一小节中的层叠帮你解决这个问题。 层叠就是在html文件中对于同一个元素可以有多个css样式存在&#xff0c;当有…

架构设计分布式数据结构与算法面试题

目录架构设计请列举出在JDK中几个常用的设计模式&#xff1f;什么是设计模式&#xff1f;你是否在你的代码里面使用过任何设计模式&#xff1f;静态代理、JDK动态代理以及CGLIB动态代理静态代理动态代理cglib代理单例模式工厂模式观察者模式装饰器模式秒杀系统设计分布式分布式…

Java学习笔记3——集合框架

文章目录1 集合的概念2 Collection体系集合Collection父接口3 List接口与实现类List接口List实现类ArrayListVectorLinkedList4 Set接口与实现类Set接口Set实现类HashSetTreeSet5 Map接口与实现类Map接口Map接口的内部接口Entry1 集合的概念 概念&#xff1a;对象的容器&#…