leetcode155 Min Stack

题意:模拟一个最小栈,可以push,pop,top,和返回栈中最小值。

思路:已经忘了栈是怎么构建的了,晕···尝试了半天,错误,发现直接用stack数据结构来做最方便,再用一个栈来存最小值。值得注意的是当pop时最小值栈也要pop。

代码:

stack<int> Data, Min;
    void push(int x)
    {
        Data.push(x);
        if(Min.empty() || Min.top() > x)
            Min.push(x);
        else
            Min.push(Min.top());

    }

    void pop()
    {
        Data.pop();
        Min.pop();
    }

    int top()
    {
        if(!Data.empty())
            return Data.top();
    }

    int getMin()
    {
        if(!Min.empty())
            return Min.top();
    }

 

posted @ 2015-07-10 00:49  puyangsky  阅读(151)  评论(0)    收藏  举报