美文网首页
155.最小栈

155.最小栈

作者: su945 | 来源:发表于2020-06-23 23:09 被阅读0次

    题目描述

    设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

    push(x) —— 将元素 x 推入栈中。
    pop() —— 删除栈顶的元素。
    top() —— 获取栈顶元素。
    getMin() —— 检索栈中的最小元素。

    问题分析

    主要利用两个栈,分别存储正常数据和最小数据

    解题思路1

    class MinStack {
    public:
        /** initialize your data structure here. */
        //构建两个数据结构,一个是存储,一个是最小
        stack<int> data;
        stack<int> minData;
    
        MinStack() {
            
            
        }
    
        void push(int x) {
            data.push(x);
            if (minData.empty())
            {
                minData.push(x);
            }
            else
            {
                if (minData.top() > x)
                {
                    minData.push(x);
                }
            }
        }
    
        void pop() {
            minData.pop();
            data.pop();
        }
    
        int top() {
            return data.top();
        }
        int getMin() {
            return minData.top();
        }
    };
    

    相关文章

      网友评论

          本文标题:155.最小栈

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