【leetcode】最小栈
发布日期:2021-05-12 05:47:24 浏览次数:23 分类:原创文章

本文共 1097 字,大约阅读时间需要 3 分钟。

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。

  • push(x) -- 将元素 x 推入栈中。
  • pop() -- 删除栈顶的元素。
  • top() -- 获取栈顶元素。
  • getMin() -- 检索栈中的最小元素。

示例:

MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin();   --> 返回 -3.minStack.pop();minStack.top();      --> 返回 0.minStack.getMin();   --> 返回 -2.

 

参考:

 

class MinStack {    Stack<Integer> stack =new Stack<>();    int min = Integer.MAX_VALUE;    /** initialize your data structure here. */    public MinStack() {    }        public void push(int x) {        if(x<=min) {            stack.push(min);            min = x;        }        stack.push(x);    }        public void pop() {        int t = stack.peek();        stack.pop();        if (t == min) {            min = stack.peek();             stack.pop();        }    }        public int top() {        return stack.peek();    }        public int getMin() {        return min;    }}/** * Your MinStack object will be instantiated and called as such: * MinStack obj = new MinStack(); * obj.push(x); * obj.pop(); * int param_3 = obj.top(); * int param_4 = obj.getMin(); */

 

上一篇:【leetcode】Fizz Buzz
下一篇:【leetcode】Shuffle an Array 打乱一个没有重复元素的数组

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月18日 21时03分06秒