当前位置: 首页 > news >正文

【创作赢红包】LeetCode:232. 用栈实现队列

🍎道阻且长,行则将至。🍓

🌻算法,不如说它是一种思考方式🍀


算法专栏: 👉🏻123


一、🌱232. 用栈实现队列

  • 题目描述:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):
    实现 MyQueue 类:
    void push(int x) 将元素 x 推到队列的末尾
    int pop() 从队列的开头移除并返回元素
    int peek() 返回队列开头的元素
    boolean empty() 如果队列为空,返回 true ;否则,返回 false
    说明:
    你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。
    你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。

  • 来源:力扣(LeetCode)

  • 难度:简单

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

栈和队列

栈(STACK)是一种先进后出(LIFO)的数据结构。栈的操作有进栈(push)、出栈(pop)、栈是否空、查看栈顶元素。
队(QUEUE)列是一种先进先出(FIFO)的数据结构。操作有入队、出队、对空、队首。
在这里插入图片描述
例如不考虑异常时:

class MyQueue {List<Integer> myqueue=new ArrayList<>();public MyQueue() {}public void push(int x) {myqueue.add(x);}public int pop() {int x=myqueue.get(0);myqueue.remove(0);return x;}public int peek() {return myqueue.get(0);}public boolean empty() {return myqueue.isEmpty();}
}

🌴解题

1.栈实现队列操作

使用两个栈一个作为进一个作为出:

class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack = new ArrayDeque<Integer>();outStack = new ArrayDeque<Integer>();}public void push(int x) {inStack.push(x);}public int pop() {if (outStack.isEmpty()) {in2out();}return outStack.pop();}public int peek() {if (outStack.isEmpty()) {in2out();}return outStack.peek();}public boolean empty() {return inStack.isEmpty() && outStack.isEmpty();}private void in2out() {while (!inStack.isEmpty()) {outStack.push(inStack.pop());}}
}

在这里插入图片描述


🌵赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。——李白🌷

返回第一页。☝


☕物有本末,事有终始,知所先后。🍭

🍎☝☝☝☝☝我的CSDN☝☝☝☝☝☝🍓

相关文章:

【创作赢红包】LeetCode:232. 用栈实现队列

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340;算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;232. 用栈实现队列 题目描述&#xff1a;请你仅使用两个栈实现先入先出队…...

Mybatis+Mysql 实现向下递归查询

介绍 说到递归查询&#xff0c;大家可以想到的技术实现方式主要如下几种&#xff1a; 1、各种主流应用开发语言本身通过算法实现 2、各种数据库引擎自身提供的算法实现 本文提到主要是针对第二种和第一种的结合 主要技术栈 1、ORM&#xff1a;Mybatis 2、DB&#xff1a;MyS…...

python@调用系统命令行@os.system@subprocess@标准输入输出@sys.stdin@sys.stdout@input@print

文章目录python调用系统命令行os.system标准输入输出sys.stdinsys.stdoutinputprint概要os.systemdemoswindows命令解释器ComSpecsubprocessrecommended&#x1f388;基本用法demos标准输入输出sys.stdininput()sys.stdin.inputinput()交互模式小结sys.stdoutsys.stdout.wirte(…...

手握数据智能密钥,诸葛智能打开数字化经营“三重门”

科技云报道原创。 如果说上世纪传统麦迪逊大街上的“广告狂人”吸金立足之本&#xff0c;还主要是基于“Big Idea”的话&#xff0c;那么在当下&#xff0c;数据正在成为企业营销和运营的金矿。 这是一个“人与机器共同进化”的时代&#xff0c;技术作为延伸人类感觉的媒介之…...

C语言可以实现各种滤波算法

C语言可以实现各种滤波算法&#xff0c;以下是一些常见的滤波算法&#xff1a; 均值滤波&#xff08;Mean Filter&#xff09;&#xff1a;将图像中每一个像素周围一定区域内的灰度值取平均值作为该像素的新灰度值&#xff0c;用于去除高斯噪声等随机噪声。 下面是一个简单的 C…...

使用Netty,当然也要了解它的连接闲置处理

连接闲置网络连接的闲置指的是当前网络连接处于空闲状态&#xff0c;即没有正在进行的数据传输或通信活动。当我们的某个连接不再发送请求或者接收响应的时候&#xff0c;这个连接就开始处于闲置状态。网络连接的闲置时间越长&#xff0c;说明该连接越不活跃。此时&#xff0c;…...

2、K-Planes

运行配置 主页&#xff1a;https://sarafridov.github.io/K-Planes/ 代码&#xff1a;https://github.com/sarafridov/K-Planes 预训练权重&#xff1a;https://drive.google.com/drive/folders/1zs_folzaCdv88y065wc6365uSRfsqITH Neural_3D_Video_Dataset&#xff1a;htt…...

张文海教授课题组在国际高水平期刊《Cerebral Cortex》发表研究成果

调节悲伤情绪对于维持伴侣间的浪漫关系至关重要。人际情绪调节策略包括情感参与&#xff08;AE&#xff09;和认知参与&#xff08;CE&#xff09;&#xff0c;这两种策略在浪漫关系中效用如何&#xff1f;它们是如何通过情感纽带调节伴侣情绪的&#xff1f;其背后的脑际神经互…...

ffmpeg4.1 源码学习之-转封装

前言 ffmpeg 的源码量非常的多&#xff0c;而且非常繁杂&#xff0c;非常多的函数&#xff0c;如果一个函数一个函数看的话要花费比较多的时间。所以本文通过跟踪ffmpeg转封装的过程来学习ffmpeg的源码具体转封装的命令&#xff1a;ffmpeg -i 1_cut.flv -c copy -f mp4 1.mp4在…...

ChatGPT写作文章-快速使用ChatGPT不用注册方式

如何更好地使用ChatGPT批量生成文章&#xff1a;详细教程 作为一款强大的文本生成器&#xff0c;ChatGPT可以帮助您快速、高效地批量生成文章。但如果您还不知道如何更好地使用ChatGPT&#xff0c;那么这篇详细的列表教程将会指导您如何使用它来生成高质量的文章&#xff0c;提…...

Nginx配置ip白名单(服务权限控制)

Nginx服务器权限控制&#xff1a;Nginx 是一款高性能的 HTTP 和反向代理服务器。它可以通过配置文件实现权限控制&#xff0c;从而限制或允许特定的 IP 地址、网络或用户访问指定的资源。这里是一些基本的 Nginx 权限控制方法&#xff1a; 1. 基于 IP 地址的访问控制 在 Ngin…...

Vue 核心(二)

文章目录Vue 核心&#xff08;二&#xff09;八、 绑定样式1、 class2、 style九、 条件渲染1、 渲染指令2、 使用示例十、 列表渲染1、 基本语法2、 key原理3、 列表过滤4、 列表排序5、 数组更新检测6、 大总结十一、 收集表单数据十二、 内置指令1、 v-text2、 v-html3、 v-…...

犯罪现场还原虚拟vr训练平台突破各种教学限制

在当今社会矛盾日益凸显、各式犯罪层出不穷的背景下&#xff0c;创新改革公安院校实战化教学方式&#xff0c;强化对基层公安队伍实战化应用型人才的供给能力具有重要性、紧迫性。 案件现场勘查是门技术活&#xff0c;如何让民警快速有效提升技能、服务实战? 常规刑侦专业现场…...

LeetCode 617. 合并二叉树 | C++语言版

LeetCode 617. 合并二叉树 | C语言版LeetCode 617. 合并二叉树题目描述解题思路思路一&#xff1a;使用递归代码实现运行结果参考文章&#xff1a;思路二&#xff1a;减少遍历节点数代码实现运行结果参考文章&#xff1a;LeetCode 617. 合并二叉树 题目描述 题目地址&#xf…...

Python量化交易08——利用Tushare获取日K数据

总有同学问我要数据...很多第三方接口都能直接获取数据的&#xff0c;本次介绍怎么用Tushare库获取A股日k线行情的数据。 Tushare有两个版本&#xff0c;老版现在快弃用了。 新版的官网链接在这&#xff1a;Tushare数据 需要注册一个账号&#xff0c;然后改一下资料&#xff0…...

30张精美可视化大屏,无需代码直接套用,解决你95%的大屏需求!

通常制作可视化大屏&#xff0c;一般有两种方式 代码开发&#xff1a;写代码调用数据和图表库&#xff0c;比如写JSEcharts &#xff1b; 可视化工具&#xff1a;用现成的数据可视化工具 前者简单直接&#xff0c;直接写代码就完事。但对于大部分人来说门槛较高&#xff0c;维…...

TCP网络事件模型的封装1.0

TCP网络模型的封装 最近学习了TCP网络模型的封装&#xff0c;其中运用的封装技术个人感觉有点绕 在反复读代码、做思维导图下初步理解了这套封装模型&#xff0c;不禁感叹原来代码还能这样写&#xff1f;神奇&#xff01; 为此将源码分享出来并将流程图画出&#xff0c;方便…...

NC271.二叉搜索树的后序遍历序列

文章目录一、题目描述二、示例三、主要思路一、题目描述 输入一个整数数组&#xff0c;判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true ,否则返回 false 。假设输入的数组的任意两个数字都互不相同。 提示&#xff1a; 1.二叉搜索树是指父亲节点大于左子树中…...

研究fastdds v2.8.0 1之 基础模块

阅读 dds 协议 1.4 版本 &#xff0c; 结合fastdds 2.8 的代码理解dds。 Entity 理解 DCPS基础设施模块由以下类组成&#xff1a; Entity DomainEntity QosPolicy Listener Status WaitSet Condition GuardCondition StatusCondition1、Entity 是所有DCPS 对象的基础类 virt…...

ElasticSearch系列 - SpringBoot整合ES:精确值查询 term

文章目录01. ElasticSearch term 查询&#xff1f;02. ElasticSearch term 查询数值型数据&#xff1f;03. ElasticSearch term 查询字符串类型数据&#xff1f;04. ElasticSearch term 查询日期型数据&#xff1f;05. ElasticSearch term 查询日期型数据的注意事项&#xff1f…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...