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

    实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。

    你实现的栈将支持pushpop 和 min 操作,全部操作要求都在O(1)时间内完毕。

    您在真实的面试中是否遇到过这个题? 
    Yes
    例子

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

    用了两个stack

    class MinStack {
    public:
        stack<int> date;
        stack<int> mins;
        MinStack() {
            // do initialization if necessary
        }
    
        void push(int number) {
            // write your code here
            date.push(number);
            if (mins.size() ==0 || mins.top() >=number) {
                mins.push(number);
            }
            else {
                mins.push(mins.top());
            }
        }
    
        int pop() {
            // write your code here
            if (mins.size()>0 && date.size() > 0) {
              int t = date.top();
            date.pop();
            mins.pop();
            return t;
            }
            return 0;
        }
    
        int min() {
            // write your code here
            if (mins.size()>0 && date.size() > 0)
            return mins.top();
            return 0;
        }
    };
    


  • 相关阅读:
    zfs
    targetcli
    targetcli
    自动制linux iso包
    yum解决重复包,依赖冲突问题
    lvm相关
    vmware相关
    配置本地yum源
    k8s安装prometheus监控
    流水线基础-Pipeline
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6991878.html
Copyright © 2011-2022 走看看