包涵min函數的棧
阿新 • • 發佈:2017-12-23
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函數的棧