包涵min函数的栈

Posted Jeysin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包涵min函数的栈相关的知识,希望对你有一定的参考价值。

题目描述

  定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
  思路:用一个辅助栈动态维护最小值
 1 class Solution {
 2 public:
 3     void push(int value) {
 4         _stack1.push(value);
 5         if(_stack2.size()==0)_stack2.push(value);
 6         else{
 7             if(value<=_stack2.top())_stack2.push(value);//如果入栈的元素比当前最小元素还小,则也入到辅助栈
 8         }
 9     }
10     void pop() {
11         if(_stack1.top()==_stack2.top())//如果出栈的是当前最小元素,则辅助栈也出栈
12         {
13             _stack1.pop();
14             _stack2.pop();
15         }else{
16             _stack1.pop();
17         }
18     }
19     int top() {
20         return _stack1.top();
21     }
22     int min() {
23         return _stack2.top();
24     }
25 private:
26     stack<int> _stack1;
27     stack<int> _stack2;//辅助栈
28 };

 

以上是关于包涵min函数的栈的主要内容,如果未能解决你的问题,请参考以下文章

包含min函数的栈-剑指Offer

包含min函数的栈

20.包含min函数的栈

Coding Interviews 20 包含min函数的栈

剑指offer(20)包含min函数的栈

剑指Offer30包含min函数的栈