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();    

    } };

  • 相关阅读:
    手机号不能为空
    选项卡套选项卡
    可以在一个html的文件当中读取另一个html文件的内容
    价格计算
    v形 加强版
    V形
    生成100个Div
    伪元素::after和::before
    数组中的toString,toLocalString,valueOf方法有什么区别
    JavaScript toLocaleString() 方法
  • 原文地址:https://www.cnblogs.com/wygyxrssxz/p/4486186.html
Copyright © 2011-2022 走看看