原题
题目分析
设计栈,并在常数时间复杂度求栈的最小元素。内部维护一个列表实现栈的功能。
代码实现
public class MinStack
{
private List<int> _list;
private int _min;
/** initialize your data structure here. */
public MinStack()
{
_list = new List<int>();
}
public void Push(int x)
{
_list.Add(x);
if (_list.Count == 1)
_min = x;
if (x < _min)
_min = x;
}
public void Pop()
{
_list.RemoveAt(_list.Count - 1);
if(_list.Count>0)
_min = _list.Min();
}
public int Top()
{
return _list[_list.Count - 1];
}
public int GetMin()
{
return _min;
}
}

本文介绍了一种特殊的数据结构——最小栈的设计与实现,该栈能够在常数时间内完成压栈、弹栈、获取栈顶元素及获取当前栈中最小元素的操作。通过维护两个列表,分别用于存储栈内元素及其当前最小值。
357

被折叠的 条评论
为什么被折叠?



