AcWing 41. 包含min函数的栈(C++)- 单调栈

题目链接:https://www.acwing.com/problem/content/description/90/
题目如下:
在这里插入图片描述

class MinStack {
    
    
public:
    /** initialize your data structure here. */
    stack<int> stk,minstk;
    MinStack() {
    
    
        minstk.push(INT_MAX);//目标:每次minstk的栈顶都是最小元素
    }
    
    void push(int x) {
    
    
        stk.push(x);
        minstk.push(min(minstk.top(),x));
    }
    
    void pop() {
    
    
        stk.pop();
        minstk.pop();
    }
    
    int top() {
    
    
        return stk.top();
    }
    
    int getMin() {
    
    
        return minstk.top();
    }
};

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

Guess you like

Origin blog.csdn.net/qq_40467670/article/details/121236385