剑指 Offer 30. 包含 min 函数的栈 C++ 时间91%
作者:互联网
用一个记录当前最小值的栈mins作为辅助,如果新入栈的数小于等于(因为可能有重复数值,所以取等号)mins.top或者mins是空的,则两个栈一起入栈。
随后出栈时如果出的是当前最小值,则两个栈一起出栈。
class MinStack {
public:
stack<int> s, mins;
public:
/** initialize your data structure here. */
MinStack() {
}
void push(int x) {
s.push(x);
if (mins.empty() || mins.top()>=x)
mins.push(x);
}
void pop() {
if (mins.top() == s.top())
mins.pop();
s.pop();
}
int top() {
return s.top();
}
int min() {
return mins.top();
}
};
标签:return,Offer,91%,top,min,pop,int,push,mins 来源: https://blog.csdn.net/qq_45735810/article/details/122152337