1. 程式人生 > >包涵min函數的棧

包涵min函數的棧

size private style scribe 如果 log push 輔助棧 tle

題目描述

  定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的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函數的棧