155Min Stack

来源:互联网 发布:淘宝签署图片空间协议 编辑:程序博客网 时间:2024/05/16 01:35
class MinStack {
Stack<Integer> stack = new Stack<Integer>();
Stack<Integer> tmpStack = new Stack<Integer>();
Integer minVal = null;
    public void push(int x) {
        if(stack.isEmpty()){
        minVal = x;
        }else if(x < minVal){
        minVal = x;
        }
        stack.push(x);
    }


    public void pop() {
        int change = stack.pop();
        if(change==minVal){
        tmpStack.clear();
        int f = 0;
        while(!stack.isEmpty()){
        if(f==0){
        minVal = stack.peek();
        tmpStack.push(minVal);
        stack.pop();
        f = 1;
        }else{
        int tVal = stack.peek();
        if(tVal < minVal){
        minVal = tVal;
        }
        tmpStack.push(tVal);
        stack.pop();
        }
        }
        while(!tmpStack.isEmpty()){
        int tt = tmpStack.peek();
        stack.push(tt);
        tmpStack.pop();
        }
       }
    }


    public int top() {
        return stack.peek();
    }


    public int getMin() {
        return minVal;
    }
}
0 0