zoukankan      html  css  js  c++  java
  • leecode第一百五十五题(最小栈)

    class MinStack {
    public:
        stack<int> cur_stack;
        stack<int> cur_min;//用来存储最小值的栈
        int min_num;
        
        MinStack() {//初始化
            this->min_num = INT_MAX;
        }
    
        void push(int x) {//压入栈,同时记录最小值
            if (x < this->min_num)
                this->min_num = x;
    
            cur_min.push(this->min_num);
            cur_stack.push(x);
        }
    
        void pop() {//弹出栈,删除的同时注意小心最小值的变化
            cur_min.pop();
            if (cur_min.empty())
                this->min_num = INT_MAX;
            else
                this->min_num = cur_min.top();
                
            cur_stack.pop();
        }
    
        int top() {//查看栈顶
            return cur_stack.top();
        }
    
        int getMin() {//当前最小值,等同于查看存储最小值的栈顶
            return cur_min.top();
        }
    };

     分析:

    嘿嘿,偷懒了,直接用了别人的栈,但是作用不一样啊,我这个能查看最小值。不然那就用两个队列实现栈了。

    编程太渣了,第一时间没想起来,最小值随着栈的弹出也会变化。第二时间没想起来弹出之后最小值的阈值也会变。

  • 相关阅读:
    tomcat启动问题
    索引优化
    itext转PDF(二)
    itext转pdf(一)
    定时器quartz配置文件
    hibernate自动去别名问题
    win10安装mysql 8.0.19 (解压方式)
    把数据按列拆分为数据表
    程序记时
    find的应用
  • 原文地址:https://www.cnblogs.com/CJT-blog/p/10717843.html
Copyright © 2011-2022 走看看