题解 | #包含min函数的栈#
class Solution {
stack<int> s;
stack<int> minStack;
public:
void push(int value) {
if (s.size() == 0) {
s.push(value);
minStack.push(value);
} else {
s.push(value);
if (value <= minStack.top()) {
minStack.push(value);
}
}
}
void pop() {
if (s.size() > 0 && s.top() == minStack.top()) {
s.pop();
minStack.pop();
} else {
s.pop();
}
return;
}
int top() {
if (s.size() > 0) return s.top();
return NULL;
}
int min() {
if (minStack.size() > 0) return minStack.top();
return NULL;
}
};
查看10道真题和解析
