包含min函数的栈

class Solution {
public:
    void push(int value) {
        m_sdata.push(value);
        
        if(m_smin.size() == 0 || value < m_smin.top())
            m_smin.push(value);
        else
            m_smin.push(m_smin.top());
    }
    
    void pop() {
        if(m_sdata.size()>0 && m_smin.size()>0){
            m_sdata.pop();
            m_smin.pop();
        }
    }
    
    int top() {
        return m_sdata.top();
    }
    
    int min() {
        return m_smin.top();
    }
    
 private:
    stack<int> m_smin;
    stack<int> m_sdata;
    

};

 

posted on 2017-02-28 22:12  123_123  阅读(68)  评论(0编辑  收藏  举报