leetcode155.最小栈

设计一个支持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.
import java.util.ArrayList;
import java.util.List;

class MinStack {

    List<Integer> list;

    /** initialize your data structure here. */
    public MinStack() {
        list = new ArrayList<>();
    }

    public void push(int x) {
        list.add(x);
    }

    public void pop() {
        list.remove(list.size()-1);
    }

    public int top() {
        return list.get(list.size()-1);
    }

    public int getMin() {
        int res = Integer.MAX_VALUE;
        for(int i : list) {
            res = res > i ? i : res;
        }
        return res;
    }
}

/**
 * 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();
 */
发布了83 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42317011/article/details/100857186