LeetCode 155. Min Stack

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

  • push(x) -- Push element x onto stack.
  • pop() -- Removes the element on top of the stack.
  • top() -- Get the top element.
  • getMin() -- Retrieve the minimum element in the stack.
    Example:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> Returns -3.
minStack.pop();
minStack.top();      --> Returns 0.
minStack.getMin();   --> Returns -2.

題意:自己實現(xiàn)一個棧

java代碼:

Stack<Integer> stack = new Stack<>(); //declaration one stack here
    int min = Integer.MAX_VALUE;  //先聲明min, no worry about stack.empty

    public void push(int x) {
        if (x <= min) {
            stack.push(min);
            min = x;         //單獨記錄下最小值是什么
        }
        stack.push(x);       //(看上面的解釋)
    }

    public void pop() {
        int top = stack.pop();  //是賦值語句,也完成了pop操作
        if (top == min){
            min = stack.pop(); //之前每次出現(xiàn)min就push進兩次,這里pop第二次
        }
    }

    public int top() {
        return stack.peek();  //import java.util.Stack
    }

    public int getMin() {
        return min;
    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容