题解 | #包含min函数的栈#
包含min函数的栈
http://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
class Solution {
public:
void push(int value) {
s.push(value);
if(min_s.empty()){
min_s.push(value);
} else {
if(value < min_s.top()){
min_s.push(value);
} else {
min_s.push(min_s.top());
}
}
}
void pop() {
s.pop();
min_s.pop();
}
int top() {
return s.top();
}
int min() {
return min_s.top();
}
private:
stack<int> s;
stack<int> min_s;
};
用一个影子栈来保存相同位置下对应的最小值