设计一个支持
push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现
MinStack类:
MinStack()初始化堆栈对象。void push(int val)将元素val推入堆栈。void pop()删除堆栈顶部的元素。int top()获取堆栈顶部的元素。int getMin()获取堆栈中的最小元素。示例 1:
输入: ["MinStack","push","push","push","getMin","pop","top","getMin"] [[],[-2],[0],[-3],[],[],[],[]] 输出: [null,null,null,null,-3,null,0,-2] 解释: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. minStack.getMin(); --> 返回 -2.提示:
-231 <= val <= 231 - 1pop、top和getMin操作总是在 非空栈 上调用push,pop,top, andgetMin最多被调用3 * 104次
cppclass MinStack { private: stack<int> st; stack<int> minSt; public: MinStack() { } void push(int val) { st.push(val); if(minSt.empty()||val<=minSt.top()) { minSt.push(val); } } void pop() { if(st.top()==minSt.top()) minSt.pop(); st.pop(); } int top() { return st.top(); } int getMin() { return minSt.top(); } }; /** * 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(); */
LeetCode 155. 最小栈
Liangwei Lin2026-05-10 17:06
相关推荐
程序员大阳5 小时前
副队长JavaScript教程(49)-主动抛出异常与错误类型古法老登瞎折腾5 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理飞Link5 小时前
什么是 AirSim?一文读懂无人机仿真平台hhhjhl5 小时前
Protobuf.js 跨端三方库仓颉适配全流程智能运维指南6 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提yz_aiks7 小时前
Spring AI 2.1 ChatMemory 已过时用什么替代:迁移到 Session Memory 实战(JDBC 存储与会话压缩)金銀銅鐵7 小时前
[Java] 用 GUI 展示 EnumMap 增删键值对时的内部变化学长毕设7 小时前
基于SpringBoot的上门洗车服务系统设计与实现jason成都7 小时前
RTKLIB-Java 多基线联合RTK:FIX率从0%到91.5%的三层根因修复鱼宵7 小时前
Stream 终端操作一次讲透:collect、count、reduce 怎么选