35:包含min函数的栈

包含min函数的栈

定义栈的结构,请在该类型中实现一个能够得到栈的最小元素的min函数。
在该栈中,调用min,push及pop的时间复杂度都是O(1)

主要问题点: 再把最小值弹出之后,我们如何知道下一个最小值,所以才需要用到额外的辅助栈。

public class Offer36 {
    Stack<Integer> stack1 = new Stack<>();
    Stack<Integer> stack2 = new Stack<>();
    Integer minTemp = Integer.MAX_VALUE;


    public Integer min(){
        return minTemp;
    }

    public void push(Integer data){
        stack1.push(data);
        if(data<minTemp){
            stack1.push(data);
            minTemp = data;
        }
    }

    public void pop(){
        Integer pop = stack1.pop();
        if(pop.equals(minTemp)){
            stack2.pop();
            minTemp = stack2.peek();
        }
    }

    
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页