zoukankan      html  css  js  c++  java
  • 【leetcode】3 minstack

    构建MinStack,实现一系列操作,包括push,pop,top,minstack(返回栈中最小元素)

    思路:利用原始栈,不过这里需要两个栈,一个栈mystack用于存储元素,另一个栈otherstack元素由小到大排列

    关键:mystack进行push(x)时,判断x与mystack的top()元素大小,始终将小的元素如栈minstack,这样mystack的top()始终是最小的

    mystack的pop操作也是类似,当mystack与otherstack的top元素相同时,两个元素同时删除,否则只删除mystack的top元素

    class MinStack { public:

        stack<int> mystack;     stack<int> minstack;

        void push(int x) {        

        mystack.push(x);        

        if(minstack.empty()||x<=minstack.top())            

          minstack.push(x);     }

        void pop() {        

         if(!mystack.empty()){            

           if(mystack.top()==minstack.top())                

            minstack.pop();            

            mystack.pop();        

            }            

           }

        int top() {        

        return mystack.top();     }

        int getMin() {       

        return minstack.top();    

    } };

  • 相关阅读:
    圣杯+双飞翼 自适应布局
    drupal8 用户指南
    运维笔记:zabbix的运用(1)安装过程
    Nginx的初识
    PHP 获取LDAP服务器Schema数据
    Nginx(alias 和 root的区别)
    vue开发--生成token并保存到本地存储中
    PHP程序员必须知道的两种日志
    MVC 应用程序级别捕捉异常
    消息队列MQ
  • 原文地址:https://www.cnblogs.com/wygyxrssxz/p/4486186.html
Copyright © 2011-2022 走看看