- 最小栈
public class MinStack
{
private Stack<int> data = new Stack<int>();
private Stack<int> helper = new Stack<int>();
public MinStack() { }
public void Push(int x)
{
data.Push(x);
if (helper.Count == 0 || x <= helper.Peek()) helper.Push(x);
}
public void Pop()
{
if (data.Pop() == helper.Peek()) helper.Pop();
}
public int Top()
{
return data.Peek();
}
public int GetMin()
{
return helper.Peek();
}
}