2023-12-08 队列与栈

news2024/10/5 21:14:19

栈与队列一

232. 用栈实现队列

思路:对于使用栈实现队列的话,必须使用两个共同来维护使得每次都能先进先出!

232.用栈实现队列版本2

class MyQueue:

    def __init__(self):
        # 需要建立两个list来维护出栈以及进栈
        self.stack_in = []
        self.stack_out = []

    def push(self, x: int) -> None:
        self.stack_in.append(x)

    def pop(self) -> int:
        if  self.empty():
            return None
        # 判断出栈是否有元素
        if self.stack_out:
            return self.stack_out.pop()
        else:
            for i in range(len(self.stack_in)):
                self.stack_out.append(self.stack_in.pop())
        return self.stack_out.pop()

    def peek(self) -> int:
        # 使用list来做,末尾就头 为什么使用pop捏?是为了避免反复进行空的判断!不要代码冗余
        ans = self.pop()
        self.stack_out.append(ans)
        return ans

    def empty(self) -> bool:
        # 只需要两个栈其中一个不为零就可
        return not (self.stack_in or self.stack_out)

225. 用队列实现栈

思路:这个比较简单了,简单维护一个队里就可以了!
class MyStack:

    def __init__(self):
        self.queue = []

    def push(self, x: int) -> None:
        self.queue.append(x)

    def pop(self) -> int:
        if self.empty():
            return None
        return self.queue.pop()

    def top(self) -> int:
        # 直接弹不需要判断为空的
        asn = self.pop()
        self.queue.append(asn)
        return asn

    def empty(self) -> bool:
        return  not self.queue


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

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

相关文章

C# 两个日期比较大小

文章目录 C# 两个日期比较大小直接比较大小工具类DateTime.Compare C# 两个日期比较大小 直接比较大小 string ed "2023-12-13 09:27:59.000";//过去式DateTime nowDateTime DateTime.Now;DateTime expirationDate Convert.ToDateTime(ed);//质保期 长日期DateT…

压缩pdf怎么压缩又小又清晰?超级实用!

当PDF文件过大时,很容易遇到无法上传等现象,这时候我们可以借助一些专业的压缩工具,将PDF文件压缩变小,如果你还不知道怎么做,下面就来看下具体的压缩方法吧。 方法一:使用嗨格式压缩大师 1、打开电脑上安…

【Debug小结】关于部署Java项目的Jar包到本地服务器失败

问题描述: 在Idea中完成项目编码后,使用Package打包成.jar文件 接下来使用cmd执行java -jar xxx 命令后 报错如下:Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" j…

【内存函数】

目录 memcpy使用和模拟实现memmove使用和模拟实现memset使用memcmp使用 1. memcpy使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num) ; 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存的位置这个函数在遇到…

【Jenkins】Centos环境安装Jenkins(通过docker安装)

通过docker环境安装Jenkins 参考官网 https://hub.docker.com/r/jenkins/jenkins/ 1、安装docker环境 # 删除已有安装包 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-…

企业考勤技术,这个方法很靠谱!

在当今社会,随着科技的不断进步,人脸识别技术在各个领域得到了广泛应用。其中,三维人脸考勤系统作为一种高效、准确的考勤解决方案,正在成为企业管理和人力资源管理的重要工具之一。 与传统的二维人脸识别相比,三维人脸…

Corona最新渲染器Corona11详解,附送下载地址

近日,Corona进行了大版本更新,发布了最新的Corona11。这次更新,包含众多新功能和新修复,借助 Corona 11 用户可将作品提升到更高的创作水准,更真实可感的视觉水平。 那么更新了那些呢?一起来看看吧&#x…

Restormer技术点小结

1. 解决cnn的不足: 1)感受野有限 2)输入尺寸固定 2. 解决transform的不足: 1)计算复杂度随着空间分辨率的增加而二次增长 3. 优势结构:MDTA(Multi-Dconv Head Transposed Attention)和GDFN( Gated-Dco…

第16章 网络io与io多路复用select/pool/epool

第16.1节 写一个服务端代码 服务端代码 #include <stdio.h> #include <errno.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h>#include <fcntl.h>int main() {//openint sockfd sock…

【UE 材质】切换颜色、纹理时的过渡效果

效果 步骤 1. 新建一个工程&#xff0c;创建Basic关卡 2. 创建一个材质&#xff0c;这里命名为“M_Plane”&#xff0c;打开这个材质&#xff0c;在材质图表中添加如下节点 注意“Noise”节点中的函数选择“Voronoi” 3. 对材质“M_Plane”创建材质实例 4. 在场景中放置一个平…

idea SpringBoot target 不自动更新,不自动生成问题

如题,为什么不自动更新? 我使用Maven中的insert命令生成了target文件夹,但是,修改了代码重新启动还是不会自动更新,检查了文件,发现了resources文件夹是一个普通文件夹,没有标记为项目资源文件夹,所以idea不会给你自动生成的

Cglib动态代理从入门到掌握

Cglib 动态代理 本文的写作目的是为了探究 Spring 框架中在使用Transactional标注的方法中使用 this 进行自调用时事务失效的原因&#xff0c;各种视频教程中只是简单指出 this 指向的不是代理类对象&#xff0c;而是目标类对象&#xff0c;但是并没有解释为什么 this 不是代理…

工业性能CCD图像处理

硬件部分 软件部分 CCD新相机的调试处理(更换相机处理,都要点执行检测来查看图像变化) 问题:新相机拍摄出现黑屏,图像拍摄不清晰,(可以点击图像,向下转动鼠标的滚轮(Mouse Wheel)放大图像) 解决办法:进入CCD的设定,选择对应的相机,调试好参数(如下图) 选择好相…

技术Leader:像李云龙一样打造学习型团队

今天跟大家分享一下怎么样构建一个学习型的团队。 首先对于计算机行业而言&#xff0c;不明而喻&#xff0c;我们要接受的东西真的太多了。我们接触的信息和变化也太多了。如果只是因循守旧&#xff0c;排斥新东西&#xff0c;那么我们被时代淘汰只是个时间问题。 想当年我大…

【电子取证:FTK IMAGER 篇】DD、E01系统镜像动态仿真

​ 文章目录 【电子取证&#xff1a;FTK Imager 篇】DD、E01系统镜像动态仿真一、DD、E01系统镜像动态仿真 &#xff08;一&#xff09;使用到的软件 1、FTK Imager (v4.5.0.3)2、VMware Workstation 15 Pro (v15.5.2)&#xff08;二&#xff09;FTK Imager 挂载镜像 1、选择 …

thinkphp6入门(13)-- 一对多关联模型

定义一对一关联&#xff0c;例如&#xff0c;一个用户都有多个工作经历。 一、两表 1.用户表:user 2.工作经验表&#xff1a;work_experience user表的id关联work_experience表的user_id。 注意看&#xff0c;user_id1的有2条工作经验 二、数据模型 主表模型&#xff1a;…

Centos7 安装Redis详细教程

1. 安装依赖 redis是由C语言开发&#xff0c;因此安装之前必须要确保服务器已经安装了gcc&#xff0c;可以通过如下命令查看机器是否安装&#xff1a; gcc -v如果没有安装则通过以下命令安装&#xff1a; yum install -y gcc2.下载redis安装包并解压 # 下载&#xff0c;我是…

欧拉函数与欧拉定理

文章目录 AcWing 873. 欧拉函数题目链接欧拉函数欧拉函数的证明思路CODE时间复杂度分析 AcWing 874. 筛法求欧拉函数题目链接问题分析与时间复杂度CODE思路 欧拉定理 AcWing 873. 欧拉函数 题目链接 https://www.acwing.com/activity/content/problem/content/942/ 欧拉函数 …

java方法引用语法规则以及简单案例

目录 一、方法引用1.1 什么是方法引用1.2 方法引用的语法规则1.3 构造器引用1.4 方法引用的简单案例 参考资料 一、方法引用 1.1 什么是方法引用 方法引用是 Lambda 表达式的一种简写形式&#xff0c;用于表示已有方法的直接引用。 类似于lambda表达式&#xff0c;方法引用也…