LeetCode se refiere a la Oferta 30. Pila que contiene la función mínima

Enlace del título original

Use pilas duales para implementar una sola pila que contenga funciones mínimas, donde se usa una estación para mantener el elemento de clasificación más pequeño en la pila actual.

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

Supongo que te gusta

Origin blog.csdn.net/qq_43078427/article/details/114282938
Recomendado
Clasificación