题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 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 Stack Stack2; int min=0; public MinStack() { Stack1=new Stack (); Stack2=new Stack (); } public void push(int x) { if(Stack1.empty()) min=x; else{ if(x 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)