LeetCode는 Offer 30을 의미합니다. min 함수를 포함하는 스택

원래 제목 링크

이중 스택을 사용하여 min 함수를 포함하는 단일 스택을 구현합니다. 여기서 하나의 스테이션은 현재 스택에서 가장 작은 정렬 요소를 유지하는 데 사용됩니다.

class MinStack {
    
    
public:
    /** initialize your data structure here. */
    MinStack() {
    
    
        while(!mystack.empty()) mystack.pop();
        while(!minStack.empty()) minStack.pop();
    }
    
    void push(int x) {
    
    
        mystack.push(x);
        if(minStack.empty() || x <= minStack.top()) minStack.push(x);
    }
    
    void pop() {
    
    
        if(mystack.top() == minStack.top()) minStack.pop();
        mystack.pop();
    }
    
    int top() {
    
    
        return mystack.top();
    }
    
    int min() {
    
    
        return minStack.top();
    }
private:
    stack<int> mystack;
    stack<int> minStack;
};

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

추천

출처blog.csdn.net/qq_43078427/article/details/114282938