zoukankan      html  css  js  c++  java
  • LintCode-12.带最小值操作的栈

    带最小值操作的栈

    实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。
    你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。

    注意事项

    如果堆栈中没有数字则不能进行min方法的调用

    样例

    如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,1

    标签

    栈 Zenefits 谷歌 优步

    code

    class MinStack {
    public:
        stack<int> mainStack;
        stack<int> helpStack;
        
        MinStack() {
            // do initialization if necessary
        }
    
        void push(int number) {
            // write your code here
            int top;
            mainStack.push(number);
    
            if(!helpStack.empty())
                top = helpStack.top();
            else
                top = number;
    
            if(number > top)
                helpStack.push(top);
            else
                helpStack.push(number);
        }
    
        int pop() {
            // write your code here
            if(!mainStack.empty()) {
                int data = mainStack.top();
                mainStack.pop();
                helpStack.pop();
                return data;
            }
        }
    
        int min() {
            // write your code here
            if(!helpStack.empty()) {
                int data = helpStack.top();
                return data;
            }
        }
    };
  • 相关阅读:
    iOS学习-UILabel
    react js
    代理模式
    利用gitbush从git上下载代码到本地
    VS2017企业版密钥
    office2016产品密钥及激活工具
    .netframe初识
    树的遍历——c#实现
    数据结构——总结
    单例模式
  • 原文地址:https://www.cnblogs.com/libaoquan/p/6807497.html
Copyright © 2011-2022 走看看