LeetCode155. 最小栈MinStack(栈)

1、题目描述

2、代码详解

import java.util.Stack;

class MinStack {
    private Stack<Integer> dataStack;  // 数据栈
    private Stack<Integer> minStack; // 辅助栈,放入最小元素
    /** initialize your data structure here. */
    public MinStack() {
        dataStack = new Stack<>();
        minStack = new Stack<>();
    }

    public void push(int x) {
        dataStack.push(x);
        // 如果x小于等于minstack的栈顶
        if (minStack.isEmpty() || minStack.peek() >= x) minStack.push(x);
    }

    public void pop() {
        int x = dataStack.pop();
        if(x == minStack.peek()) minStack.pop();
    }

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

    public int getMin() {
        return minStack.peek();

    }

}

https://www.bilibili.com/video/BV1jE411e7wJ?from=search&seid=8345138823063573011

发布了184 篇原创文章 · 获赞 225 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/IOT_victor/article/details/105169152