题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
代码
/*
* 1.dataStack为存储数据的栈,minStack为存储最小值的栈;
* 2.push的时候将value值与minStack中的top值比较,小则minStack push value,大则push top值
*/
class Solution {
public:
stack<int> dataStack, minStack;
void push(int value) {
dataStack.push(value);
if (minStack.empty()){
minStack.push(value);
}else{
int min = minStack.top();
min <= value?minStack.push(min):minStack.push(value);
}
}
void pop() {
dataStack.pop();
minStack.pop();
}
int top() {
return dataStack.top();
}
int min() {
return minStack.top();
}
};