Min Stack(返回栈中最小数)
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
push(x) – Push element x onto stack.
pop() – Removes the element on top of the stack.
top() – Get the top element.
getMin() – Retrieve the minimum element in the stack.
Code
class MinStack {
Stack<Integer> stack=new Stack<Integer>();
Stack<Integer> min=new Stack<Integer>();
public void push(int x) {
stack.push(x);
if(min.size()==0){
min.push(x);
}
else{
int num=min.peek();
if(num>x){
min.push(x);
}
else{
min.push(num);
}
}
}
public void pop() {
stack.pop();
min.pop();
}
public int top() {
return stack.peek();
}
public int getMin() {
return min.peek();
}
}