欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > LeetCode:0302. 栈的最小值(栈 Java)

LeetCode:0302. 栈的最小值(栈 Java)

2024/10/24 3:22:25 来源:https://blog.csdn.net/Cosmoshhhyyy/article/details/143141973  浏览:    关键词:LeetCode:0302. 栈的最小值(栈 Java)

目录

0302. 栈的最小值

题目描述:

实现代码与解析:

原理思路:


0302. 栈的最小值

题目描述:

请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。

示例:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.getMin(); --> 返回 -2.

实现代码与解析:

//请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(
//1)。 
// 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); 
//minStack.push(-3); minStack.getMin();   --> 返回 -3. minStack.pop(); minStack.top(
//); --> 返回 0. minStack.getMin(); --> 返回 -2. 
//
// Related Topics 栈 设计 👍 102 👎 0import java.util.Stack;//leetcode submit region begin(Prohibit modification and deletion)
class MinStack {Stack<Integer> stk1 = new Stack();Stack<Integer> stk2 = new Stack();/** initialize your data structure here. */public MinStack() {stk1 = new Stack();stk2 = new Stack();stk2.push(Integer.MAX_VALUE);}public void push(int x) {stk1.push(x);stk2.push(Math.min(stk2.peek(), x));}public void pop() {stk1.pop();stk2.pop();}public int top() {Integer peek = stk1.peek();return peek;}public int getMin() {Integer peek = stk2.peek();return peek;}
}/*** Your MinStack object will be instantiated and called as such:* MinStack obj = new MinStack();* obj.push(x);* obj.pop();* int param_3 = obj.top();* int param_4 = obj.getMin();*/
//leetcode submit region end(Prohibit modification and deletion)

原理思路:

        简单题,定义一个辅助栈,记录每个状态的最小值即可。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com