2015腾讯暑期实习生 Web前端开发 面试经历 --作者imwtr

1.现在有100亿个数字大小为1到10亿的数字,在这100亿个数字里边只有一个数字出现的次数是奇数次的,你用什么方法,找出这个数字呢?

  答:显然至少要全部过一遍,可以用位运算,遍历数组,最后剩下的数字就是出现奇数次的数字(^运算 a^b^b = a)

2.A和B分苹果。分苹果策略是一次一个或者两个,A先拿,然后B拿,然后A拿..一直到拿完问什么方案,能让A拿到最后一个苹果呢?

  答:A先拿一次,确保剩下的是3的倍数,接下来B一个或两个,A一个或两个,确保BA各拿一次合起来是三个,直到最后三个。最后三个不论

  谁先拿都可以确保A最后拿。

3.随机发牌。有10000张牌,随机发出一张,要使得随机发出的牌不重复,而且时间、空间复杂度要恒定。你觉得怎样做可以达到这个目的呢?

  答:面试官的回答,随机打一张后,把该张牌跟最后一张对调,接下来的随机的范围缩小一位,如此循环。

posted @ 2015-04-14 19:32  林海云  阅读(338)  评论(0编辑  收藏  举报