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