剑指offer(11)-包含min函数的栈

来源:互联网 发布:怎么切换mac系统 编辑:程序博客网 时间:2024/06/10 03:39

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

用双栈来解决,第一个栈用作普通栈,存放用于出栈入栈的数据,以及执行top()操作,第二个栈用于存放当前最小值(栈顶).

class Solution {public:    stack<int> smin;    stack<int> sdata;    void push(int value) {        sdata.push(value);        if (value < smin.top() || smin.empty())            smin.push(value);        else smin.push(smin.top());    }    void pop() {        smin.pop();        sdata.pop();    }    int top() {       return sdata.top();    }    int min() {        return smin.top();       }};

没有进行足够的特殊情况判断,也就是边界条件没有严格写出来,在牛客网还是AC了。

1 0
原创粉丝点击