๐ŸŒ— ๅ‰‘ๆŒ‡ Offer 30. ๅŒ…ๅซminๅ‡ฝๆ•ฐ็š„ๆ ˆ

ๅžไฝ›็ซฅๅญ2022ๅนด10ๆœˆ10ๆ—ฅ
  • algorithm
  • Stack
ๅฐไบŽ 1 ๅˆ†้’Ÿ

๐ŸŒ— ๅ‰‘ๆŒ‡ Offer 30. ๅŒ…ๅซminๅ‡ฝๆ•ฐ็š„ๆ ˆ

้šพๅบฆ: ๐ŸŒ—

้—ฎ้ข˜ๆ่ฟฐ

img_32.png


่งฃๆณ•

class MinStack {
    // ๆ€่ทฏ๏ผš
    // ๅ€ŸๅŠฉ ่พ…ๅŠฉๆ ˆ๏ผŒๅญ˜ๆ”พๆœ€ๅฐๅ€ผ
    LinkedList<Integer> stack;
    LinkedList<Integer> ts;

    /** initialize your data structure here. */
    public MinStack() {
        stack = new LinkedList<>();
        ts = new LinkedList<>();
    }
    
    public void push(int x) {
        stack.push(x);
        if(ts.isEmpty() || x <= ts.peek()) {
            ts.push(x);
        }
    }
    
    public void pop() {
        int val = stack.pop();
        if(!ts.isEmpty() && val == ts.peek()) {
            ts.pop();
        }
    }
    
    public int top() {
        return stack.peek();
    }
    
    public int min() {
        return ts.peek();
    }
}

/**
 * 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.min();
 */

่พ“ๅ‡บ

img_33.png

ไธŠๆฌก็ผ–่พ‘ไบŽ: 2022/10/10 ไธ‹ๅˆ8:43:48
่ดก็Œฎ่€…: liuxianzhishou