zoukankan      html  css  js  c++  java
  • OJ练习31——T155 Min Stack

    设计栈,要求支持pop,push,top,以及返回栈中最小值的功能。

    【思路】

    首见题型。要用两个stack,其中一个保留最小值。

    每次选择比minstack.top小的值push进去,这样就能保持top始终是最小值。

    【other code】

    class MinStack {
    private:
        stack<int> ostack;
        stack<int> minstack;
    public:
        void push(int x) {
            ostack.push(x);
            if(minstack.empty()|| ((!minstack.empty()) && x <= minstack.top()))
                minstack.push(x);
        }
    
        void pop() {
            if(!ostack.empty()){
                if(minstack.top()==ostack.top())
                    minstack.pop();
                ostack.pop();
            }
        }
    
        int top() {
            if(!ostack.empty()){
                return ostack.top();
            }
        }
    
        int getMin() {
            if(!minstack.empty()){
                return minstack.top();
            }
        }
    };

    【后记】

    记住这个思路。

  • 相关阅读:
    对象的实例化内存布局与访问定位
    方法区

    虚拟机栈
    运行时数据区
    类加载子系统
    JVM和Java体系架构
    JUnit概述
    HTML5CSS3_day03
    HTML5CSS3_day01
  • 原文地址:https://www.cnblogs.com/ketchups-notes/p/4459276.html
Copyright © 2011-2022 走看看