@XQF
2018-03-07T14:52:42.000000Z
字数 528
阅读 1785
数据结构与算法
使用两个栈,一个装数据,一个装最小值。
当pop()数据栈的时候,最小值栈也要pop。
自实现栈的时候,否则没有多大用处
class MyStack1 {
MyStack<Integer> stackValues;
MyStack<Integer> stackMin;
int min;
public MyStack1() {
stackValues = new MyStack<>();
stackMin = new MyStack<>();
min = Integer.MAX_VALUE;
}
public void push(int i) {
if (i < min) {
min = i;
stackMin.push(min);
}
stackValues.push(i);
}
public Integer pop() {
if (stackValues.peek().equals(stackMin.peek())) {
stackMin.pop();
}
return stackValues.pop();
}
public Integer min() {
if (stackValues.isEmpty()) {
return Integer.MAX_VALUE;
}
return stackMin.peek();
}
}