题解 | #包含min函数的栈#

包含min函数的栈

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

import java.util.Stack;

public class Solution {

    Stack<Integer> dataStack = new Stack<>();
    Stack<Integer> minStack = new Stack<>();


    public void push(int node) {

        dataStack.push(node);

        if (minStack.isEmpty() || minStack.peek() > node) {
            minStack.push(node);
        } else {
            //放入自己 因为要保证对应dataStack中的最小元素要在minStack中存在, 
            //一旦dataStack中a元素移除 即使a是最小的,
            //也要保证minStack中下一个弹出的元素应该是,dataStack中除去a下一个最小的元素
            minStack.push(minStack.peek());
        }
    }

    public void pop() {

        if (!dataStack.isEmpty()) {
            dataStack.pop();
        }

        if (!minStack.isEmpty()) {
            minStack.pop();
        }
    }

    public int top() {
        if (!dataStack.isEmpty()) {
           return dataStack.peek(); 
        }
        return 0;
    }

    public int min() {
        if (!minStack.isEmpty()) {
            return minStack.peek();
        }
        return 0;
    }
}
刷刷题 文章被收录于专栏

刷刷题 活跃活跃脑细胞

全部评论

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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