时间限制: 1秒 空间限制: 32768K
本题知识点: 栈
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
C#语言
Stack<int> stack = new Stack<int>();
int minValue = int.MaxValue;
public void push(int node)
{
if (node < minValue) minValue = node;
stack.Push(node);
}
public void pop()
{
int num = stack.Pop();
if (minValue == num)
{
minValue = int.MaxValue;
foreach (var item in stack)
{
if (item < minValue) minValue = item;
}
}
}
public int top()
{
return stack.Peek();
}
public int min()
{
return minValue;
}