涂鸦移动面试总结

整体问的比较简单知识小地方有的没太注意

先整体自我介绍,然后问我三层架构,然后又让我讲MVC,(MVC讲的不是很好)。然后讲一下面向对象特性,对于多态进行细问,以及多态进行调用过程(父类声明,子类new?)。然后问了进程与线程的区别。

然后说来几道算法题吧。

1:有五十二张牌,现在是有序的,现在只有random(0,1)函数,需要把这52张牌打的很乱,怎样实现:

我的解:把这52张牌可以看成(0,51)数组,对以前的函数乘以51,就变成了(0,51)随机数。我说可以每次随机取出来一个数,放到结果数组里面,然后再选出来一个,与原来的数就行比较 ,如果一样,就重新取值。

面试官说这个解法可以,但是就是在最后几个数值的时候可能比较麻烦,比如最后一个,可能期望值是(1+52)/2=26。

最后面试结束我问好的解法,他说选出来一个数值之后,把最后的一个数值放到该位置上,从而范围就缩小,然后从(0,50)选取一个值。

2:1-2+3-4+5-6+7.....n,n很大

我说n很大, 是不是不能用int或者long存储,他说可以用long存储。我开始叙述了一遍最后的结果,最后说的可能有点乱,他说你把代码写出来,然后再给我说

long n;

cin>>n;

n=abs(n);

if(n==0)

return 0;

if(n%2==0)

return -n/2;

if(n%2==1)

return n/2+1/2;

我复述了好多遍,他说你最后的结果是多少吗,然后我就发现我太数学化了。就把最后改成(n+1)/2。他说行,这就是我为啥让你手写的原因。

最后他问我有什么问题吗,然后我就问他了第一道算法最好的解法。然后我又问,我进去之后做的是哪方面的,他说你知道我们公司是做什么的嘛,我说游戏嘛。他说进去之后有团队,有领导,什么什么的一大串子英文名称,我就恩恩。。。

面试官是福建或者广东人,有的地方让面试官重复了好几遍。


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值