码迷,mamicode.com
首页 > 其他好文 > 详细

最小栈

时间:2020-05-13 15:22:21      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:img   min()   存储   图片   http   inf   pre   nbsp   最小值   

 

技术图片

 

 

当一个元素要入栈时,我们取当前辅助栈的栈顶存储的最小值,与当前元素比较得出最小值,将这个最小值插入辅助栈中(min_stack.push(min(x,min_stack.top()))

当一个元素要出栈时,我们把辅助栈的栈顶元素也一并弹出;

在任意一个时刻,栈内元素的最小值就存储在辅助栈的栈顶元素中。

 

class MinStack {
      stack<int> x_stack;
      stack<int> min_stack;
  public:
      MinStack() {
          min_stack.push(INT_MAX);
      }

      void push(int x) {
          x_stack.push(x);
          min_stack.push(min(min_stack.top(), x));
      }

      void pop() {
          x_stack.pop();
          min_stack.pop();
      }

      int top() {
          return x_stack.top();
      }

      int getMin() {
          return min_stack.top();
      }
  };

 

最小栈

标签:img   min()   存储   图片   http   inf   pre   nbsp   最小值   

原文地址:https://www.cnblogs.com/-citywall123/p/12882475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!