大众点评面试

  今天早上去大众点评面试,面试官问了一个关于算法的题目,当时脑袋短路,没有回答出来,在地铁上想了想,现在把答案发出来。

题目大意是这样的:实现一个先进后出的队列,要求能返回最大值,不能用循环。

    public class MyStack
    {
        Stack<int[]> _Stack = new Stack<int[]>();
        int _max = 0;
        public int Max
        {
            get
            {
                int[] array = _Stack.Peek();
                return array[1];
            }
        }
        public void Push(int a)
        {
            if (a > _max)
            {
                _max = a;
            }
            int[] array = new int[] { a, _max };
            _Stack.Push(array);
        }

        public int Pop()
        {
            int[] array = _Stack.Pop();
            _max = array[1];
            return array[0];
        }
    }

  补充一下,上面没有做任何线程安全方面的控制,只是列出了思路。  

还有另外一个算法的题目,大意是关于提款的,要求一次性能提出来,面试官举了一个例子:要取出27元,有10块、2块和一块面额,那么就需要取2个十块,2个两块和3个一块,又说到我们不知道面额,只知道颜色什么的,我没有听懂面试官的意思,所以就直接说不会了。

  面试官的人不错,面试过程比较的轻松,不过,我最后挂了。呵呵。

作者:HOH
出处:http://hoh.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/HOH/p/4682503.html