(栈)Leetcode155最小栈+739每日温度

739. 每日温度 - 力扣(LeetCode)

while要把stack的判断放在前面,否则stack[-1]可能报错

class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]"""#单调栈里存元素的话还要返回去得下标#直接存下标就没有这个问题#单调栈存放遍历过但没结果的数ans=[0]*len(temperatures)stack=[]for i in range(len(temperatures)):if not stack:stack.append(i)elif temperatures[i]>temperatures[stack[-1]]:#while temperatures[i]>temperatures[stack[-1]] and stack:while stack and temperatures[i]>temperatures[stack[-1]]:ans[stack[-1]]=i-stack[-1]stack.pop()stack.append(i)else:stack.append(i)return ans

155. 最小栈 - 力扣(LeetCode)

双栈,空间换时间,单独维护一个最小栈,最小栈每一个位置对应栈那个位置的最小值

class MinStack(object):def __init__(self):#minstack栈顶是维护和stack相同长度目前为止最小的元素self.stack=[]self.minstack=[]def push(self, val):""":type val: int:rtype: None"""if not self.minstack:self.minstack.append(val)else:self.minstack.append(min(self.minstack[-1],val))self.stack.append(val)def pop(self):""":rtype: None"""self.stack.pop()self.minstack.pop()def top(self):""":rtype: int"""return self.stack[-1]def getMin(self):""":rtype: int"""return self.minstack[-1]

739. 每日温度 - 力扣(LeetCode)

while要把stack的判断放在前面,否则stack[-1]可能报错

class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]"""#单调栈里存元素的话还要返回去得下标#直接存下标就没有这个问题#单调栈存放遍历过但没结果的数ans=[0]*len(temperatures)stack=[]for i in range(len(temperatures)):if not stack:stack.append(i)elif temperatures[i]>temperatures[stack[-1]]:#while temperatures[i]>temperatures[stack[-1]] and stack:while stack and temperatures[i]>temperatures[stack[-1]]:ans[stack[-1]]=i-stack[-1]stack.pop()stack.append(i)else:stack.append(i)return ans

155. 最小栈 - 力扣(LeetCode)

双栈,空间换时间,单独维护一个最小栈,最小栈每一个位置对应栈那个位置的最小值

class MinStack(object):def __init__(self):#minstack栈顶是维护和stack相同长度目前为止最小的元素self.stack=[]self.minstack=[]def push(self, val):""":type val: int:rtype: None"""if not self.minstack:self.minstack.append(val)else:self.minstack.append(min(self.minstack[-1],val))self.stack.append(val)def pop(self):""":rtype: None"""self.stack.pop()self.minstack.pop()def top(self):""":rtype: int"""return self.stack[-1]def getMin(self):""":rtype: int"""return self.minstack[-1]

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

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

相关文章

【NLP(01)】NLP(自然语言处理)基础

目录NLP基础一、基本概念1. 自然语言处理的基本介绍1.1 与语言相关的概念1.2 为什么使用NLP2. NLP的应用方向2.1 **自然语言理解**2.2 自然语言转换2.3 自然语言生成3. NLP基础概念4. NLP的发展历史5. NLP的基本流程二、NLP中的特征工程0. 引入1. 词向量2. 传统NLP中的特征工程…

Python工程师进阶学习道路分析

本文将分为以下几个核心部分: 心态与基础重塑:从“会用”到“精通”核心语言深度:窥探Python的奥秘编程范式与设计模式:写出优雅的代码并发与异步编程:释放多核时代的威力性能分析与优化:让代码飞起来深入…

IntelliJ IDEA中Maven的“Sync“与“Reload“详解:小白的避坑指南

在IntelliJ IDEA中使用Maven时,Sync All Maven Projects(同步)和 Reload All Maven Projects(重新加载)是两个最常用的操作按钮。它们看似相似,实则承担着完全不同的职责。本文将通过通俗易懂的对比和场景分…

网络地址的详细计算说明

IP地址分类与计算 IP地址分5类A类 :0开头,适用于大型网络 B类 :10开头,适用于中型网络 C类 :110开头,适用于小型网络 D类 :1110开头,用于组播 E类 : 1110开头&#xff0c…

人工智能驱动的现代电商前端开发:从基础到智能体验

引言:AI如何重塑电商体验电子商务行业正在经历一场人工智能革命。从个性化推荐到视觉搜索,从智能客服到预测分析,AI技术正在彻底改变用户与电商平台的交互方式。作为前端开发者,了解如何集成AI功能已成为必备技能。本文将带您深入…

mimic数据统计

是否能联通 psql -h 127.0.0.1 -U Shinelon-d mimic --password pgadmin建库 psql -d mimiciv -f mimic-iv/buildmimic/postgres/create.sql 也可以pgadmin直接运行create.sql 导入csv.gz数据 psql -d mimic -v ON_ERROR_STOP1 -v mimic_data_dirH:/mimic-iv-2.2 -f C:\Users\S…

孟德尔随机化小试 从软件安装数据下载到多种检验

孟德尔随机化(Mendelian Randomization, MR)作为一种利用基因数据推断因果关系的强大工具,在流行病学研究中应用广泛。本文将详细讲解MR的核心原理、完整分析流程,并附上关键代码实现,帮助你从零开始完成一次MR分析。1…

记一次:postman请求下载文件的使用方法

前言:笔者的后端接口是swagger,遇到像文件导出下载的功能就实现不了。然后使用postman工具就可以了。注:postman工具使用send下拉选项中有请求下载,如图完美解决。后续有其它方法在补充。

快速搭建项目(若依)

RuoYi-Vue 是一个 Java EE 企业级快速开发平台,低代码的框架。 1.环境要求: 其中MySQL和Redis放在服务器上或者本机上。 2.代码搭建: 代码下载地址:https://gitee.com/y_project/RuoYi-Vue,在官方文档里面可下载若依…

iOS开发之UICollectionView为什么需要配合UICollectionViewFlowLayout使用

1. UICollectionView 的职责分离UICollectionView 本质上只是一个容器,用来展示一系列的 cell(单元格)。 它本身 不关心 cell 的摆放方式,只负责:Cell 的复用(避免性能浪费)Cell 的增删改查滚动…

一、部署LNMP

一、准备环境操作系统:CentOS 7.x(最少 2 核 CPU 2GB 内存 20GB 磁盘)网络:能访问公网(用于下载包)软件版本:Nginx 1.20MySQL 5.7/8.0PHP 7.4WordPress 6.x(商城插件 WooCommerce&…

【时时三省】vectorCAST 便捷使用技巧

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 目录 1,工程的共享 2,工程的关键文件保存 2,工作环境目录下,各个文件夹的作用 1,build 和 environment 的区别 2,vcm的作用 3,tst 文件的妙用 4,配置文件的妙用 5,复制测试环境 6,vectorCAST…

TOPSIS 优劣解距离法总结

TOPSIS 优劣解距离法总结 1. 基本思想 TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)方法通过计算方案与正理想解(最优值)和负理想解(最劣值)的距离,来评价方案的优…

机器学习笔试题

人工智能与机器学习单选题(50道)1. 机器学习的核心目标是:A. 通过硬编码规则解决问题 B. 从数据中自动学习模式 C. 提高计算机硬件性能 D. 优化数据库查询速度2. 以下属于监督学习任务的是:A. 聚类分析 B. 图像分类 C. 异常检测 D…

CISP-PTE之路--10文

1.TCP/UDP 工作在 OSI 哪个层? 应用层 传输层 数据链路层 表示层 答案:传输层 解析:TCP(传输控制协议)和 UDP(用户数据报协议)是 OSI 模型中传输层的核心协议,负责端到端的数据传输管理,如可靠性(TCP)、实时性(UDP)等。 2.下列哪种设备可以隔离 ARP 广播帧? …

接口性能测试工具 - JMeter

1. 下载和运行JMeter 是由 Java 语言编写的, 因此 JMeter 的使用依赖于 Java 环境 - JRE.前往 oracle 官网下载 JMeter 压缩包.Mac 用户解压完成后, 在包内的 bin 目录下运行 sh jmeter:Windows 用户直接运行 bin 目录下的 jmeter.bat:即可进入 JMeter 主页面:1.1 添加环境变量…

Go语言实战案例-数据库事务处理

在实际业务中,很多操作需要保证 要么全部成功,要么全部失败,否则可能造成数据不一致。比如:• 用户转账(A 账户扣款,B 账户加款)• 下单支付(生成订单、扣减库存、记录支付&#xff…

为何vivo做了头显,小米却选择AI眼镜

在押注下一代智能终端这件事上,手机厂商为何步调不一致?文|游勇编|周路平在手机销量和创新都陷入停滞的背景下,主流手机厂商正在探索下一代交互终端,试图寻找新的增长点。今年6月,小米发布了AI眼…

Day24 目录遍历、双向链表、栈

day24 目录遍历、双向链表、栈显示指定目录下的所有 .h 文件 功能描述 遍历指定目录(递归进入子目录),查找所有以 .h 为后缀的头文件,将其完整路径(路径 文件名)存储到双向链表中,并正向或反向…

JupyterLab 安装(python3.10)

目录 一、环境 二、安装 三、启动Jupyterlab 四、通过chrome浏览器进行访问 五、打开Jupyter Notebook 六、pandas验证 JupyterLab 是一个基于 Web 的交互式开发环境,是经典 Jupyter Notebook 的下一代版本。它支持多种编程语言(如 Python、R、Juli…