专门使用一个栈,来记录每次入栈所对应的最小值。同步弹出

包含min函数的栈

http://www.nowcoder.com/questionTerminal/4c776177d2c04c2494f2555c9fcc1e49

专门使用一个stack,记录每次操作所对应的最小值?

---第二小元素的下一个元素在哪儿?--解决思路:专门使用一个stack

同步弹出!!

public class Solution {
    Stack<Integer> min=new Stack<>();
    Stack<Integer> data=new Stack<>();


    public void push(int node) {
        data.push(node);
        if(min.isEmpty()){
            min.push(node);
        }else{
            min.push(Math.min(min.peek(),node));
        }
    }

    public void pop() {
        int val=data.pop();
        min.pop();

    }

    public int top() {
        return data.peek();

    }

    public int min() {
        return min.peek();
    }
}
全部评论

相关推荐

我面试,她问我有女朋友没
不太迷人的反派_:不过对象,还会结合你老家,意向城市等等,看你是否稳定。哥们,别多想
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务