【笔试面试题】腾讯2013实习生面试算法题及参考答案

1、八数码问题:3*3的格子,有1~8个数,空了一个,挪动,让这8个数排好1-8的顺序(按行),空格在最后,描述算法,如何优化。
解答:

八数码问题,这是一道ACM题:
参考:八数码


2、计算机模拟魔方的旋转。


3、服务器端的程序发到客户端,让客户端执行后返回结果,发送给客户端的是代码,而且客户端没有编译器,怎么做? 
1.服务端发lua代码,客户端内置lua解释器。

2.所有脚本语言都行吧。 甚至C语言,可以选择tcc。



4、64匹马,8个赛道,找出前4名最少比赛多少场?
解答:

答案应该是8+4+2+1=15场 
理由:要是想决出前4名,首先应该将这64匹马分成8组,进行比赛,选出每组的前4名,这样就选出了32匹马,然后再将这32匹马分成4组,每组选出前四名,这样就剩下16匹马,然后再将这16匹马分成2组,决出选出前四名,这样就剩下了8匹马,最后再比最后一场决出前四名,所以比赛场数就是8+4+2+1=15.



5、一个QQ号可能在不同IP地址的机器上登录,一个IP地址的机器上可能登录多个QQ。现在有很多条QQ号和IP的登录记录,要求实现给出一个IP地址,求出在上面登录过的QQ号个数。可以粗略估计。内存一定要节省。
解答:

Bloom Filter比位图更加节省内存。


6、一个三维坐标系中有100万个点,x、y、z三个方向的范围都是[1,10000]。现在给定一个点,以及一个范围值,要求求出所有处于这个范围内的点。
解答:

典型的K-d树应用。

7、游戏中游戏玩家经常相互之间对话,但是也有很多人发广告,问如何解决这个问题。

这道题完全不知道怎么答~囧~

你可能感兴趣的:(【笔试面试题】腾讯2013实习生面试算法题及参考答案)