【LeetCode】【HOT】155. 最小栈
package hot;
import java.util.ArrayDeque;
import java.util.Deque;
public class Solution155 {
public static void main(String[] args) {
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
System.out.println(minStack.getMin());
minStack.pop();
System.out.println(minStack.top());
System.out.println(minStack.getMin());
}
}
class MinStack{
Deque stack;
Deque stack_min;
public MinStack(){
stack = new ArrayDeque<>();
stack_min = new ArrayDeque<>();
}
public void push(int val){
stack.push(val);
if(stack_min.isEmpty() || val < stack_min.peek()){
stack_min.push(val);
}
}
public void pop(){
if(stack.pop().equals(stack_min.peek())){
stack_min.pop();
}
}
public int top(){
return stack.pop();
}
public int getMin(){
return stack_min.pop();
}
}
//时间复杂度为 O(1)
//空间复杂度为 O(n)



