目录
题目地址:
相同题目题解地址:
题目:
我们直接看题解吧:
解题方法:
审题目+事例+提示:
解题分析:
解题思路:
补充说明:
代码实现:
题目地址:
LCR 147. 最小栈 - 力扣(LeetCode)
难度:中等
今天刷包含min函数的栈(最小栈),大家有兴趣可以点上看看题目要求,试着做一下。
相同题目题解地址:
最小栈,力扣-CSDN博客
题目:
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)
我们直接看题解吧:
解题方法:
辅助栈方法
审题目+事例+提示:
在常数时间内检索到最小数min
解题分析:
解题思路:
补充说明:
代码实现:
注 :
Java 代码中,由于 Stack 中存储的是
int
的包装类Integer
,因此需要使用equals()
代替==
来比较值是否相等。
class MinStack {Stack<Integer> A, B;public MinStack() {A = new Stack<>();B = new Stack<>();}public void push(int x) {A.add(x);if(B.empty() || B.peek() >= x)B.add(x);}public void pop() {if(A.pop().equals(B.peek()))B.pop();}public int top() {return A.peek();}public int min() {return B.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.min();*/