剑指offer - 包含min函数的栈(Java实现)

题目链接:https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49?tpId=13&&tqId=11173&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
  思路:我们从题意可以得知,首先我们需要一个可以存储数据的常规栈,此时我们可以发现我们并不能使用 O(1) 的方式来找出栈中的最小值,所以此时我们就需要在开启一个辅助栈,这个辅助栈就保存当前当前所有的数据中的最小值,下面由一张图来模拟这个过程。
例如我们向栈中一次依次存放 5 3 4 2 0,中间还有出栈过程:

栈Min

import java.util.Stack;

public class Solution {

    Stack<Integer> stk1 = new Stack<>();
    Stack<Integer> stk2 = new Stack<>();
    int Min = Integer.MAX_VALUE;
    public void push(int node) {
        stk1.push(node);
        Min = Math.min(Min, node);
        stk2.push(Min);
    }

    public void pop() {
        stk1.pop();
        stk2.pop();
    }

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

    public int min() {
        return stk2.peek();
    }
}
【剑指offer】题目全解 文章被收录于专栏

本专栏主要是刷剑指offer的题解记录

全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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