实现可以获取最小值的栈

这个问题很简单,看看代码就懂了,这种实现不好。在OJ上主要是很容易实现。

class Solution {
public:
    stack  stack1,stack2;
    void push(int value) {
        stack1.push(value);
        if(stack2.empty())
            stack2.push(value);
        else if(value<=stack2.top())
            stack2.push(value);
    }
    void pop() {
        if(stack1.empty())
            return;
        if(stack1.top()==stack2.top())
            stack2.pop();
        stack1.pop();
    }
    int top() {
        return stack1.top();
    }
    int min() {
        return stack2.top();
            
    }
};
两个栈,一个作为辅助栈记录最小值,但是从外面看就是一个栈。


你可能感兴趣的:(菜鸟的学习日记之数据结构)