美文网首页
包含min函数的栈

包含min函数的栈

作者: UAV | 来源:发表于2020-06-21 10:16 被阅读0次

    题目描述

    定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
    注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。

    #include<stack>
    class Solution {
    public:
        void push(int value) {
            data_stack.push(value);
            if (min_stack.empty() || min_stack.top() >= value) {
                min_stack.push(value);
            }
            else
            {
            //辅助栈只存储最小值,不是全部存储新添加的元素。
                min_stack.push(min_stack.top());
            }
        }
        void pop() {
            data_stack.pop();
            min_stack.pop();
        }
        int top() {
            return data_stack.top();
        }
        int min() {
            return min_stack.top();
        }
        stack<int>data_stack;
        stack<int>min_stack;
    };
    

    相关文章

      网友评论

          本文标题:包含min函数的栈

          本文链接:https://www.haomeiwen.com/subject/soyoxktx.html