定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
输出min的话,需再定义一个stack,当push的值大于最小值时,压入最小值,若小于的话,压入value。
1 class Solution { 2 private: 3 stack<int> s; 4 stack<int> assistant; 5 public: 6 void push(int value) { 7 8 s.push(value); 9 if(assistant.empty()) 10 assistant.push(value); 11 else if(value>assistant.top()) 12 assistant.push(assistant.top()); 13 else 14 assistant.push(value); 15 } 16 void pop() { 17 s.pop(); 18 assistant.pop(); 19 } 20 int top() { 21 return s.top(); 22 } 23 int min() { 24 return assistant.top(); 25 } 26 };