如何在O(1)内找到实时序列的最小值
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,如何在O(1)内找到实时序列的最小值,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。最小栈最小栈,能在O(1)内找到栈内序列的最小值,
千家信息网最后更新 2024年11月19日如何在O(1)内找到实时序列的最小值
如何在O(1)内找到实时序列的最小值,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
最小栈
最小栈,能在O(1)内找到栈内序列的最小值,因此此特性经常用于提升算法性能。下面看看它的一种实现。
分析过程
入栈分析:
推入元素到 mainstack,只有当当前元素小于tmpstack栈顶(实际存储为mainstack中元素索引)元素时,才入栈到tmpstack,入栈的是索引。
假设mainstack当前有n个元素,则tmpstack内元素至多有n个。等于n时,表明原入栈序列为单调递减序列。
出栈分析:
元素从mainstack出栈,但要注意出栈元素索引是否等于tmpstack栈顶,若是需要将tmpstack栈顶元素出栈。可以预知,栈顶索引一定小于等于出栈元素(在mainstack栈内)的索引。
这道题需要注意两点:
临时栈里推送的是主栈的元素索引
push时若临时栈为空,需要先推入此元素在主栈索引
代码
class MinStack(object): def __init__(self): """ initialize your data structure here. """ self.mainstack= [] self.tmpstack = []
推入元素:
def push(self, val): """ :typeval: int :rtype: None """ self.mainstack.append(val) if not self.tmpstack: self.tmpstack.append(len(self.mainstack)-1) # smaller than top of tmpstack if self.mainstack[self.tmpstack[-1]] > val: self.tmpstack.append(len(self.mainstack)-1)
出栈元素:
def pop(self): """ :rtype: None """ # min val of tmp stack equals top of mainstack if self.tmpstack and self.tmpstack[-1] == len(self.mainstack)-1: self.tmpstack.pop() return self.mainstack.pop()
def top(self): """ :rtype: int """ if self.mainstack: return self.mainstack[-1]
使用tmpstack辅助栈,换来了O(1)的查询最小复杂度
def getMin(self): """ :rtype: int """ if self.tmpstack: return self.mainstack[self.tmpstack[-1]]
关于如何在O(1)内找到实时序列的最小值问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
元素
索引
最小
序列
分析
问题
实时
更多
帮助
解答
复杂
易行
单调
简单易行
代码
内容
只有
复杂度
实际
小伙
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
攀枝花网络技术安全公司
花雨庭服务器的现状
网络安全工程师烂大街了
新华互联网科技学校在哪里
联想服务器第一次开机
国家网络安全展播
网络安全工作要会什么
广东企业党建软件开发
软件开发选哪种语言
数据库2012安装时设备名称
数据怎么存入数据库
单词 数据库 下载
数据库比较好的书
东莞市盛淇网络技术有限公
软件开发员简历
自然资源部发布数据库
互联网护理是科技吗
网络安全一般是指网络的硬件
想学习网络技术加盟联系方式
计算机软件开发英文
服务器运输纸箱
泰安网络安全宣传周活动
服务器主机开机无显示
北京专业服务器租用云空间
网站首页数据库
网络安全教育活动记载
网络安全管理登记
五华区智能化软件开发咨询报价
服务器管理员权限设置
土地利用现状数据库地类图斑