20.包含min函数的栈——剑指offer
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
1 class Solution { 2 public: 3 void push(int value) { 4 res.push(value); 5 if(Min.empty()) Min.push(value); 6 else if(value < Min.top()) 7 Min.push(value); 8 else Min.push(Min.top()); 9 } 10 void pop() { 11 if(!res.empty()){ 12 res.pop(); 13 Min.pop(); 14 } 15 } 16 int top() { 17 return res.top(); 18 } 19 int min() { 20 return Min.top(); 21 } 22 private: stack<int> res; 23 stack<int> Min; 24 };