使用数组 ,构建一个栈的数据结构, 实现 栈的push pop min top ,
#include <vector>
class Solution {
public:
void push(int value) {
if(top_num<stack.size())
{
stack[top_num]=value;
}
else
stack.push_back(value);
if(stack[top_num]<=stack[min_num])
min_num=top_num;
top_num+=1;
}
void pop() {
stack[top_num-1]=0;
top_num-=1;
if(find(stack.begin(),stack.end(),stack[min_num])>=find(stack.begin(),stack.end(),stack[top_num]))
{
min_num=0;
for(int i=0;i<top_num;++i)
{
if(stack[i]<stack[min_num])
min_num=i;
}
}
}
int top() {
return stack[top_num-1];
}
int min() {
return stack[min_num];
}
vector<int> stack;
int min_num=0;
int top_num=0;
};