leetcode 最小栈
使用两个栈来实现此功能,栈1用来存储主栈的数据,栈2用来存储更新最小值,保证栈2中的数值存有最小值,次小值,依次小值
代码如下:
class MinStack {
public:
/** initialize your data structure here. */
MinStack() {
void push(int x);
void pop();
int top();
int getMin();
}
void push(int x) {
s1.push(x);
if(minTmp.empty()||x<=minTmp.top())
{
minTmp.push(x);
}
}
void pop() {
if(s1.top()==minTmp.top())
{
minTmp.pop();
}
s1.pop();
}
int top() {
int tmp=s1.top();
return tmp;
}
int getMin() {
return minTmp.top();
}
private:
stack<int> s1;
stack<int> minTmp; //用来存储最小值
int min;
};
每天进步一点