题目描述:
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
代码描述:
import java.util.Iterator;
import java.util.Stack;
class MinStack {
public MinStack() {
}
Stack stack = new Stack();
//入栈
public void push(int x) {
stack.push(x);
}
//移除栈元素
public void pop() {
stack.pop();
}
//获取栈顶内容,不移除
public int top() {
return (int)stack.peek();
}
public int min() {
int min = (int)stack.peek();
int t = 0;
Iterator it = stack.iterator();
while (it.hasNext()){
t=(int)it.next();
if (min>t){
min = t;
}
}
return min;
}
}