实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。
你实现的栈将支持push。pop 和 min 操作,全部操作要求都在O(1)时间内完毕。
Yes
例子
例如以下操作:push(1),pop()。push(2),push(3)。min()。 push(1)。min() 返回 1。2,1
用了两个stack
class MinStack {public: stack date; stack mins; MinStack() { // do initialization if necessary } void push(int number) { // write your code here date.push(number); if (mins.size() ==0 || mins.top() >=number) { mins.push(number); } else { mins.push(mins.top()); } } int pop() { // write your code here if (mins.size()>0 && date.size() > 0) { int t = date.top(); date.pop(); mins.pop(); return t; } return 0; } int min() { // write your code here if (mins.size()>0 && date.size() > 0) return mins.top(); return 0; }};