两个想法,一个是构建一个stack另一个是利用标准库里的容器完成
自己构建有点小问题…等下解决下
利用stack容器`
class MinStack {
private:
stack<int> data;
stack<int> min;
public:
/** initialize your data structure here. */
MinStack()
: data(stack<int>()), min(stack<int>())
{
}
void push(int x) {
data.push(x);
if(min.empty() || x < min.top())
min.push(x);
else
min.push(min.top());
}
void pop() {
data.pop();
min.pop();
}
int top() {
return data.top();
}
int getMin() {
return min.top();
}
};
利用vector<int>
class MinStack {
public:
/** initialize your data structure here. */
MinStack() {
}
void push(int x) {
vec.push_back(x);
}
void pop() {
vec.pop_back();
}
int top() {
return vec[vec.size() - 1];
}
int getMin() {
int min = vec[0];
for(int r = 1;r < vec.size();++r){
if(min > vec[r]){
min = vec[r];
}
}
return min;
}
private:
vector<int> vec;
};
vector效率低,耗时长