剑指offer-python刷题-包含min函数的栈
发布日期:2021-07-28 12:03:09
浏览次数:3
分类:技术文章
本文共 1314 字,大约阅读时间需要 4 分钟。
题目
栈:先入后出
刚拿到这道题感觉和之前一道类似
因此这个题实现起来,尤其是在求最小值时,使用python内置函数简直暴力
# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stack = [] def push(self, node): # write code here self.stack.append(node) def pop(self): # write code here self.stack.pop() def top(self): # write code here if self.stack: return self.stack[-1] def min(self): # write code here return min(self.stack)
运行成功后,看讨论区遇到了一个比较高级一点的解法:利用一个辅助的栈将每次入栈、出栈操作后的当前站内的最小值保留下来。
# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stack = [] #用于存储栈中当时的最小值 self.stack_min = [] def push(self, node): # write code here self.stack.append(node) #有新元素入栈stack时,需要将此时最下的元素入栈到stack_min if not self.stack_min: self.stack_min.append(node) elif node < self.stack_min[-1]: self.stack_min.append(node) else: self.stack_min.append(self.stack_min[-1]) def pop(self): # write code here self.stack.pop() #将对应的最小值出栈 self.stack_min.pop() def top(self): # write code here if self.stack: return self.stack[-1] def min(self): # write code here #只需要将stack_min中最后一个元素出栈即可 return self.stack_min[-1]
转载地址:https://blog.csdn.net/sinat_42437278/article/details/117386819 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月12日 10时48分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MediaWiki安装
2019-04-27
Squid安装
2019-04-27
如何查看当前Linux的版本
2019-04-27
Ubuntu安装Nginx
2019-04-27
Ubuntu 下安装thttpd Web服务器
2019-04-27
用thttpd做Web Server
2019-04-27
服务器端开发经验总结 Linux C语言
2019-04-27
将网站程序放在tmpfs下
2019-04-27
使用Nginx的proxy_cache缓存功能取代Squid
2019-04-27
nginx 反向代理,动静态请求分离,proxy_cache缓存及缓存清除
2019-04-27
nginx 的proxy_cache才是王道
2019-04-27
Nginx proxy_cache 使用示例
2019-04-27
Nginx源代码分析 - 日志处理
2019-04-27
使Apache实现gzip压缩
2019-04-27
Memcached在大型网站中应用
2019-04-27
Hadoop简要介绍
2019-04-27
squid中的X-Cache和X-Cache-Lookup的意义
2019-04-27
squid 优化指南
2019-04-27
编程方式刷新Squid缓存服务器的五种方法
2019-04-27
centos vnc配置笔记
2019-04-27