大众点评面试

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

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

    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个一块,又说到我们不知道面额,只知道颜色什么的,我没有听懂面试官的意思,所以就直接说不会了。

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

转载于:https://www.cnblogs.com/HOH/p/4682503.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值