当前位置: 首页 > news >正文

(LeetCode 面试经典 150 题 ) 155. 最小栈 (栈)

题目:155. 最小栈

在这里插入图片描述
思路:栈,时间复杂度0(n)。

在插入栈元素val时,同时加入一个字段,维护插入当前元素val时的最小值即可。

C++版本:

class MinStack {
public:stack<pair<int,int>> st;MinStack() {// 哨兵st.push({0,INT_MAX});}void push(int val) {st.push({val,min(getMin(),val)});}void pop() {st.pop();}int top() {return st.top().first;}int getMin() {return st.top().second;}
};/*** Your MinStack object will be instantiated and called as such:* MinStack* obj = new MinStack();* obj->push(val);* obj->pop();* int param_3 = obj->top();* int param_4 = obj->getMin();*/

JAVA版本:

class MinStack {private final Deque<int[]> st=new ArrayDeque<>();public MinStack() {st.push(new int[]{0,Integer.MAX_VALUE});}public void push(int val) {st.push(new int[]{val,Math.min(getMin(),val)});}public void pop() {st.pop();}public int top() {return st.peek()[0];}public int getMin() {return st.peek()[1];}
}/*** Your MinStack object will be instantiated and called as such:* MinStack obj = new MinStack();* obj.push(val);* obj.pop();* int param_3 = obj.top();* int param_4 = obj.getMin();*/

GO版本:

type PII struct {x inty int
}type MinStack struct {st []PII 
}func Constructor() MinStack {return MinStack{[]PII{{0,math.MaxInt}}}
}func (this *MinStack) Push(val int)  {this.st=append(this.st,PII{val,min(this.GetMin(),val)})
}func (this *MinStack) Pop()  {this.st=this.st[:len(this.st)-1]
}func (this *MinStack) Top() int {return this.st[len(this.st)-1].x
}func (this *MinStack) GetMin() int {return this.st[len(this.st)-1].y
}/*** Your MinStack object will be instantiated and called as such:* obj := Constructor();* obj.Push(val);* obj.Pop();* param_3 := obj.Top();* param_4 := obj.GetMin();*/
http://www.dtcms.com/a/302444.html

相关文章:

  • 【Oracle】数据泵
  • Rk3568-芯片内看门狗
  • Laravel 分页方案整理
  • Apache Kafka实时数据流处理实战指南
  • 稳定币催化下,Web3 支付赛道将迎来哪些爆发?
  • 在 Linux 上进行 Apache Bench 测试
  • Item18:让接口容易被正确使用,不易被误用
  • 修改gitlab默认的语言
  • 项目如何按时交付?重点关注的几点
  • 面试问题收集——卷积神经网络
  • 音频焦点 Android Audio Focus 进阶
  • MongoDB的内存和核心数对于运行效率的影响
  • mongodb源代码分析createCollection命令创建Collection流程分析
  • 未授权访问漏洞靶场(redis,MongoDB,Memcached...)
  • MongoDB占用内存情况分析
  • jimfs:Java内存文件系统,脱离磁盘IO瓶颈利器
  • Java强制转换
  • TDengine 中 TDgpt 用于异常检测
  • 【AI绘画】Stable Diffusion 全面指南:安装、版本对比、功能解析与高级应用
  • selenium 特殊场景处理
  • 技术工具箱 |五、一个避免头文件重复引用的 Python 脚本
  • 【Java基础面试题】Java特点,八种基本数据类型
  • 提取apk中的各种语言翻译成表格,python脚本
  • 【图像处理】霍夫变换:霍夫变换原理、霍夫空间、霍夫直线、霍夫圆详解与代码示例
  • 小智源码分析——音频部分(二)
  • java设计模式 -【责任链模式】
  • 2025 DevOps工具生态全景解读:本土化服务与智能化演进成关键赛点
  • 电商项目DevOps一体化运维实战
  • Kafka 3.9.1的KRaft模式部署
  • AR远程协作系统设计:虚实融合场景下的设备维护操作指引界面