【leetcode】栈与队列总结
本文内容来自于代码随想录
栈
用栈实现队列
两个栈实现队列。思路:两个栈分别表示入栈和出栈。
- 入队:直接入栈
- 出队:
a. 出栈为空,先把入栈中的元素全部放到出栈中(相当于反过来,这样在出栈的时候先进的元素就变成先出了),然后弹出栈顶
(2)出栈不为空,那么栈顶就是要出队的元素,直接弹出栈顶
说明:当出栈入栈都有元素的时候,出栈中的元素一定是先入队的,要弹栈优先弹出栈中的元素。出栈空了,再把入栈的元素放到出栈中,再弹栈。
/**
两个栈分别表示入栈和出栈
1. 入队:直接入栈
2. 出队:
(1)出栈为空,先把入栈中的元素全部放到出栈中(相当于反过来,这样在出栈的时候先进的元素就变成先出了),然后弹出栈顶
(2)出栈不为空,那么栈顶就是要出队的元素,直接弹出栈顶
说明:当出栈入栈都有元素的时候,出栈中的元素一定是先入队的,要弹栈优先弹出栈中的元素。出栈空了,再把入栈的元素放到出栈中,再弹栈*/class MyQueue {Stack<Integer> in;Stack<Integer> out;public MyQueue() {in = new Stack<>();out = new Stack<>();}public void push(int x) {in.push(x);}public int pop() {if (out.empty()) {inToOut();}return out.pop();}public int peek() {if (out.empty()) {inToOut();}return out.peek();}public boolean empty() {return in.empty() && out.empty();}public void inToOut() {// 把入栈中的元素全部放到出栈中while (!in.empty()) {int x = in.pop();out.push(x);}}
}/*** 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();* boolean param_4 = obj.empty();*/
队列
用队列实现栈
两个队列实现栈。用栈模拟队列相对就容易一点,用两个队列。区别在于:另外一个队列只是用来备份数据。在弹栈的时候
- 先将 q1 中的数据出队到只剩一个,保存在 q2 中
- 将 q1 中最后一个数据出队。最后一个数据就是栈顶
- 将 q2 中的数据再出队,保存到 q1 中
class MyStack {Queue<Integer> q1;Queue<Integer> q2;public MyStack() {q1 = new LinkedList<>();q2 = new LinkedList<>();}public void push(int x) {q1.offer(x);}public int pop() {oneToTwo();int x = q1.poll();TwoToOne();return x;}public int top() {oneToTwo();int x = q1.poll();q2.offer(x);TwoToOne();return x;}public boolean empty() {return q1.isEmpty();}public void oneToTwo() {while (q1.size() > 1) {int x = q1.poll();q2.offer(x);}}public void TwoToOne() {while (!q2.isEmpty()) {int x = q2.poll();q1.offer(x);}}
}/*** 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();* boolean param_4 = obj.empty();*/
经典题型
- 有效的括号
- 删除字符串中的所有相邻重复项
- 逆波兰表达式求值
- 前 K 个高频元素
相关文章:
【leetcode】栈与队列总结
本文内容来自于代码随想录 栈 用栈实现队列 两个栈实现队列。思路:两个栈分别表示入栈和出栈。 入队:直接入栈出队: a. 出栈为空,先把入栈中的元素全部放到出栈中(相当于反过来,这样在出栈的时候先进的元…...
[EFI]HP Spectre 13 v102nl电脑 Hackintosh 黑苹果efi引导文件
硬件型号驱动情况主板 HP Spectre 13 v102nl 处理器Intel Core i7-7500U (7th gen - Kaby Lake)已驱动内存8 GB LPDDR3-1866 SDRAM已驱动硬盘512 GB Toshiba NVMe™ M.2 SSD已驱动显卡Intel HD Graphics 620已驱动声卡Conexant CX8200 (0x2008)已驱动网卡I1211 Gigabit Etherne…...
【Pytorch】学习记录分享8——PyTorch自然语言处理基础-词向量模型Word2Vec
【Pytorch】学习记录分享7——PyTorch自然语言处理基础-词向量模型Word2Vec 1. 词向量模型Word2Vec)1. 如何度量这个单词的?2.词向量是什么样子?3.词向量对应的热力图:4.词向量模型的输入与输出,其实…...
用Xshell连接虚拟机的Ubuntu20.04系统记录。虚拟机Ubuntu无法上网。本机能ping通虚拟机,反之不能。互ping不通
先别急着操作,看完再试。 如果是:本机能ping通虚拟机,反之不能。慢慢看到第8条。 如果是:虚拟机不能上网(互ping不通),往下一直看。 系统是刚装的,安装步骤:VMware虚拟机…...
人机对话--关于意识机器
人机对话–关于意识机器 这段内容是我和《通义千问》的对话。这本身展示的是人工智能的效果,同时这里面的内容也有人工智能相关,与各位分享。 我:阿尼尔赛斯 《意识机器》这本书写的是什么? 通义千问: 阿尼尔赛斯教…...
八股文打卡day16——计算机网络(16)
面试题:TCP连接是如何确保可靠性的? 我的回答: 1.数据分块控制。应用数据被分成被认为最适合传输的数据块大小,再发送到传输层,数据块被称为数据报文段或数据段。 2.序列号和确认应答。TCP为每一个数据包分配了一个序…...
Java Object浅克隆深克隆
对象克隆 把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制。 实现Cloneable接口,表示当前类的对象就可以被克隆,反之,表示当前类的对象就不能克隆。 如果一个接口里面没有抽象方法,表示当前的接口…...
概率的 50 个具有挑战性的问题 [8/50]:完美的桥牌
一、说明 我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克莫斯特勒(Frederick Mosteller)的《概率论中的五十个具有挑战性的问题与解决方案》)一书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇…...
自动驾驶学习笔记(二十四)——车辆控制开发
#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 控制算法 控制标定 控制协议…...
【起草】【第十二章】定制ChatGPT数字亲人
身为普普通通的我们,不知道亲人们在哪一天就要离开这个世界 ? 作为普普通通的程序员,我们可以为我们的亲人做点什么 ? 让他们以数字资产形式留在人世间 ? 对话|6岁女孩病逝捐器官,妈妈:她去…...
MySQL数据库索引
索引的定义 索引是一个排序的列表,包含索引字段的值和其对应的行记录的数据所在的物理地址 索引的作用 加快表的查询速度,还可以对字段排序 索引的副作用 会额外占用磁盘空间;更新包含索引的表会花费更多的时间,效率会更慢 …...
【LLM 】7个基本的NLP模型,为ML应用程序赋能
在上一篇文章中,我们已经解释了什么是NLP及其在现实世界中的应用。在这篇文章中,我们将继续介绍NLP应用程序中使用的一些主要深度学习模型。 BERT 来自变压器的双向编码器表示(BERT)由Jacob Devlin在2018年的论文《BERT:用于语言…...
数字人私人定制
数字人是什么? 在回答这个问题之前,我们先回答另一个问题,人如何与人工智能交流?目前可以通过文字、语音、电脑屏幕、手机屏幕、平板、虚拟现实设备等和人工智能交流,为了得到更好的交流体验,人工智能必然…...
CollectionUtils
使用 CollectionUtils 类的常用方法 在Java开发中,我们经常需要对集合进行各种操作,而Apache Commons Collections库提供了一个方便的工具类 CollectionUtils,其中包含了许多实用的方法。在这篇博客中,我们将深入了解一些常用的方…...
很想写一个框架,比如,spring
很想写一个框架,比如,spring。 原理很清楚,源码也很熟悉。 可惜力不从心,是不是可以找几个小弟一起做。...
Java集合/泛型篇----第五篇
系列文章目录 文章目录 系列文章目录前言一、说说LinkHashSet( HashSet+LinkedHashMap)二、HashMap(数组+链表+红黑树)三、说说ConcurrentHashMap前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通…...
ACES 增强版不丹水稻作物地图(2016-2022 年)
ACES 增强版不丹水稻作物地图(2016-2022 年) 用于改善粮食安全决策的 2016-2022 年年度作物类型稻米地图仍然是不丹的一项挑战。这些地图是与不丹农业部和 SERVIR 合作开发的。通过专注于发展不丹的科学、技术、工程和数学 (STEM),我们共同开…...
【Spark精讲】一文讲透Spark宽窄依赖的区别
宽依赖窄依赖的区别 窄依赖:RDD 之间分区是一一对应的宽依赖:发生shuffle,多对多的关系 宽依赖是子RDD的一个分区依赖了父RDD的多个分区父RDD的一个分区的数据,分别流入到子RDD的不同分区特例:cartesian算子对应的Car…...
nacos2.3.0配置中心问题处理
问题:Error to process server push response: {"headers":{},"abilityTable":{"supportPersistentInstanceByGrpc":true},"module":"internal"} 处理办法: 将pom.xml中 <!-- nacos服务注册/发…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...
