lintcode 带最小值操作的栈
2016-12-12 本文已影响137人
yzawyx0220
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。
你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。
解法就是建立一个存放最小值的栈
class MinStack {
stack<int> num;
stack<int> minnum;
public:
MinStack() {
// do initialization if necessary
}
void push(int number) {
// write your code here
num.push(number);
if (minnum.size() == 0 || minnum.top() >= number) {
minnum.push(number);
}
else {
minnum.push(minnum.top());
}
}
int pop() {
// write your code here
if (minnum.size() > 0 && num.size() > 0) {
int k = num.top();
num.pop();
minnum.pop();
return k;
}
}
int min() {
// write your code here
return minnum.top();
}
};