题解 | #包含min函数的栈#
包含min函数的栈
http://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
- 双栈法。
- 注意小栈的处理。
时间复杂度:O(1)
空间复杂度:O(n), 开辟了一个辅助栈。
class Solution {
public:
//双栈法解决此问题
stack<int> stk, mins;
void push(int value) {
stk.push(value);
if(mins.empty()){
mins.push(value);
}else{
if(value<=mins.top()){
mins.push(value);
}else{
mins.push(mins.top());
}
}
}
void pop() {
stk.pop();//同时弹
mins.pop();
}
int top() {
return stk.top();
}
int min() {
return mins.top();
}
};剑指Offer 文章被收录于专栏
剑指offer的解析结合


