在实现栈的基本功能的基础上,在实现返回栈中最小元素的操作
实现一个特殊的栈,在实现栈的基本功能的基础上,在实现返回栈中最小元素的操作
要求
- pop,push,getMin操作的时间复杂度为\(O(1)\)。
- 设计的栈类型可以利用现成的栈结构
使用两个栈来实现,一个栈正常的放元素,另一个栈同时压入此时的最小值。
class SpStack{
    private Stack<Integer> stack = new Stack<>();
    private Stack<Integer> minStack = new Stack<>();
    private int min = Integer.MAX_VALUE;
    public void push(int number){
        min = Math.min(min,number);
        minStack.push(min);
        stack.push(number);
    }
    public int pop(){
        minStack.pop();
        return stack.pop();
    }
    public int getMin(){
        return minStack.peek();
    }
}
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号