Leetcode-标签为stack 155. Min Stack

原题

Leetcode-标签为stack 155. Min Stack_第1张图片

题目分析

设计栈,并在常数时间复杂度求栈的最小元素。内部维护一个列表实现栈的功能。

代码实现

        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;
            }
        }

你可能感兴趣的:(算法/LeetCode,经典算法,LeetCode题目研究)