题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
题解:(截图源自《剑指offer》一书)
注意:
1、区分push的情况:向空栈push时应使min直接等于push的值;向非空栈push时应将push的值与min进行比较。
2、区分pop的情况:当pop后栈不为空时,我们应更新min为辅助栈的top值。
public class MinStack {
private StackStack1;
private StackStack2;
int min=0;
public MinStack() {
Stack1=new Stack();
Stack2=new Stack();
}
public void push(int x) {
if(Stack1.empty())
min=x;
else{
if(x 


