首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客230443569号
江苏大学 测试开发
发布于广东
关注
已关注
取消关注
@Maokt:
题解 | #包含min函数的栈#
算法思想一:定义辅助栈 解题思路: 1、要用两个栈,stack用于存储元素,mins用于存储最小值,每个位置的元素都有一个对应的最小值,也就是stack和mins的长度同步增加和减少;当需要得到目前栈中的最小值的时候,直接返回mins的栈顶元素即可 2、在mins栈中先添加一个最大值,因为以后每次添加都会和栈顶元素比较,如果栈为空的话代码要多写几行,先放一个最大值会方便一点 代码展示: Python版本 # -*- coding:utf-8 -*-class Solution: def __init__(self): """ initialize your data structure here. """ self.stack = [] self.mins = [float("inf")] def push(self, node): # write code here self.stack.append(node) self.mins.append(min(self.mins[-1], node)) def pop(self): # write code here self.stack.pop() self.mins.pop() def top(self): # write code here return self.stack[-1] def min(self): # write code here return self.mins[-1] 复杂度分析: 时间复杂度O(1):栈的入、出时间均为O(1) 空间复杂度O(N):辅助栈空间,最差情况辅助站存储元素n个 算法思想二:基于链表 解题思路: 两个List一个存放存取的东西,一个存放截至到当前下标的最小值: 1.入栈一个数字就入栈一个当前位置最小值; 2.出栈一个数字就出栈尾位置最小值; 代码展示: JAVA版本 import java.util.List;import java.util.ArrayList;public class Solution { // 存储最小元素数组 Listmin = new ArrayList(); // 存储入栈数组 Listnum = new ArrayList(); public void push(int node) { num.add(node); // 判断最小值存入min数组 if(min.size() == 0 || node < min.get(min.size() - 1)) min.add(node); else min.add(min.get(min.size() - 1)); } public void pop() { num.remove(num.size() - 1); min.remove(min.size() - 1); } public int top() { // 获取最后一个元素 return num.get(num.size() - 1); } public int min() { return min.get(min.size() - 1); } } 复杂度分析: 时间复杂度O(1):链表的添加和删除时间为O(1) 空间复杂度O(N):辅助数组空间,最差情况下链表存储n个元素
点赞 7
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
08-11 11:11
深圳大学 Java
华为OD面经-双非C++ 开发岗
BG:25届双非物联网专业,经历了考研考公双重打击,感觉状态不是很适合再gap一年考研或者考公了,早在3,4月份就了解到od(但因为还没毕业要7月份才能机考),于是提前准备刷题、背八股,选的C++语言 面试时间线:7月8日联系hr7月13日安排机考,第二天收到通过消息7月15日完成性格测试7月21日资格面试7月25日技术一面7月26日技术二面7月28日主管面 机考:第一题:企业路由器的统计页面,动态统计公司访问最多的网页URL topN。第二题:压缩日志查询,将连续相同指标值的记录合并来节约存储空间。第三题:区间连接器,将可能重叠、相邻的合并为更大空间 资格面:面试官问未来规划,为什么打算来...
查看28道真题和解析
点赞
评论
收藏
分享
08-13 19:13
第一拖拉机制造厂拖拉机学院 Java
最炸裂的面试
全程其实只有15分钟,但我真汗流浃背了🥶都是没见过的题,我这种做题蛆真半天憋不出个屁三一重能 软开1.设计一个文本编辑器,你会怎么考虑?结合操作系统回答2.如果你的电脑连不上外网但能连局域网,你会怎么排查问题?3.口述三数之和思路。dfs和bfs分别适合什么场景?4.如果要设计一个类似mook的教育网站,你会怎么设计?可以从系统架构、数据存储方面回答秋招第一战,结果发现根本没带枪啊😫
查看4道真题和解析
点赞
评论
收藏
分享
07-26 15:22
门头沟学院 嵌入式软件工程师
秒挂只有一个原因
兄弟们,遇没遇到官网投递直接秒挂这种情况只有一个原因那就是这家公司是个学历厂而你偏偏是因为学历不够就流程终止了也有可能是这家公司这个岗位卡学历
牛客59889166...:
这垃圾公司去我们学校只招销售纯离谱
点赞
评论
收藏
分享
07-08 17:47
山东大学 数据分析师
为什么我985专业前10%,top投行的实习经历现在深圳缺找不到实习啊
真三hjdlxn:
这么能吹还能找不到实习啊? 市分行写TOP投行,2个月的实习写半页。
点赞
评论
收藏
分享
昨天 16:45
武汉大学 后端
救救孩子吧
搜狐发Offer,但是武大不放人,怎么办呀,导员说,如果我旷课就没有考试资格
四川江油真nb:
给导员送到图书馆
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
【评论得现金💰】牛客评论活动又来咯
6.6W
2
...
8月份面经整理的算法高频题集合
1.3W
3
...
大疆结构秋招一面
5292
4
...
家里人一直跟我说要给领导买点东西,搞好关系
4674
5
...
美团二笔还没发邮件
4617
6
...
8.13快手秋招Java后端二面记录
3738
7
...
快手秋招-后端一面
3718
8
...
大家离职都怎么开口的啊?
3215
9
...
快手秋招一面
3199
10
...
快手 秋招 一面
3071
创作者周榜
更多
正在热议
更多
#
实习的内耗时刻
#
51252次浏览
586人参与
#
给26届的秋招建议
#
34059次浏览
889人参与
#
工作上你捅过哪些篓子?
#
19834次浏览
131人参与
#
我的秋招“寄”录
#
40525次浏览
519人参与
#
独居后,你的生活是更好了还是更差了?
#
12780次浏览
170人参与
#
你最近一次加班是什么时候?
#
79855次浏览
424人参与
#
在职场上,你最讨厌什么样的同事
#
27619次浏览
197人参与
#
我的AI电子员工
#
13008次浏览
104人参与
#
秋招,不懂就问
#
11187次浏览
116人参与
#
秋招投递记录
#
27429次浏览
306人参与
#
如果校招重来我最想改变的是
#
278771次浏览
2899人参与
#
你上一次给父母打电话是什么时候
#
12356次浏览
119人参与
#
我的国央企投递进展
#
51953次浏览
312人参与
#
网易求职进展汇总
#
112966次浏览
1067人参与
#
规定下班时间vs实际下班时间
#
20570次浏览
156人参与
#
vivo求职进展汇总
#
221169次浏览
1368人参与
#
发工资后,你做的第一件事是什么
#
71987次浏览
244人参与
#
大城市找工作会更容易吗
#
44377次浏览
353人参与
#
初创公司值得加入吗?
#
28422次浏览
198人参与
#
如果你有一天可以担任公司的CEO,你会做哪三件事?
#
32424次浏览
488人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务