我们知道平凡的栈有几个操作:
push(value) 将 value 压入栈
pop() 将栈顶元素弹出, 并返回这个弹出的元素。
现在我们想要在平凡栈的基础上实现以下几个操作:
push(val) 将 val 压入栈;
pop() 将栈顶元素弹出;
min() 返回栈中元素的最小值。
//有部分测试未通过
#include<iostream>
#include<string>
using namespace std;
int a[1000000] = { 0 };
int len = 0;
int main()
{
int N;
cin >> N;
for (int i = 0; i < N; i++)
{
string str;
cin >> str;
int M;
if (str == "push")
{
cin >> M;
a[len] = M;
len++;
}
else if (str == "pop")
{
len--;
}
else if (str == "min")
{
int min=a[0];
for (int j = 0; j < len; j++)
{
if (a[j] < min)
min = a[j];
}
cout << min;
if (i < (N - 1))cout << endl;
}
}
}
网友评论