练习:包含min函数的栈
1、题目要求:
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
2、我的代码:
class Solution {
public:
void push(int value) {
datavec.emplace_back(value);
if(minvec.empty()) {
minvec.emplace_back(value);
} else {
minvec.emplace_back(::min(minvec.back(), value));
}
}
void pop() {
//assert(!datavec.empty());
//assert(!minvec.empty());
datavec.pop_back();
minvec.pop_back();
}
int top() {
//assert(!datavec.empty());
int val = datavec.back();
datavec.pop_back();
minvec.pop_back();
return val;
}
int min() {
//assert(!minvec.empty());
return minvec.back();
}
vector<int> datavec;
vector<int> minvec;
};