包含min函数的栈
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
代码
class Solution {
vector<int> v;
vector<int> m;//辅助数组,数组最后一个愿为当前栈的最小元素
public:
void push(int value) {
v.push_back(value);
if (m.size() == 0 || m.back() >= value) {
m.push_back(value);
}
}
void pop() {
int val = top();
v.pop_back();
if (m.back() == val) {
m.pop_back();
}
}
int top() {
return v.back();
}
int min() {
return m.back();
}
};