今天第一次面试,腾讯微众银行的web开发岗,除了深刻地认识到自己是个铁five之外,也算是积累了面试经验吧。面试官人还挺好的,看我菜也没有说啥(甚至还安慰我说我还行),面试官最后给我出的那道思考题还是挺有意思的,所以在这分享下:
题干
25匹马和5条跑道,每条跑道只能跑一匹马,只能在肉眼观测的条件下要怎么选出跑得最快的那3匹马,最少要跑几次呢?
思路
马跑了才知道它快不快,所以首先所有马都得跑一遍。
把25匹马分为5组,每组5匹马,假设为a,b,c,d,e五组,所以首先需要跑5次。然后跑出来结果按速度排序为a1到a5,b1到b5以此类推。
a1,a2,a3,a4,a5=>a1
b1,b2,b3,b4,b5=>b1
c1,c2,c3,c4,c5=>c1
d1,d2,d3,d4,d5=>d1
f1,f2,f3,f4,f5=>f1
然后让a1,b1,c1,d1,f1这每组中最快的马出来跑一次,可以得到他们的快慢顺序,假设从快到慢为a1,b1,c1,d1,f1。
a1,b1,c1,d1,f1=>a1,b1,c1,d1,f1
很显然c组和f组已经不可能产生前三名了,因为他们组的第一已经不在前三位了,所以d组和f组失去资格。
而a1是总冠军,所以也排除在复赛之外,接下来就是第二和第三的选择了。
那么问题来了,第二和第三该怎么选最快?
稍加思考便可得知,第二可能是b1,也可能是a2;而第三可能是a2,a3,b1,b2,或者c1。(我面试的时候怎么想不出来)
如果难想象的话假设一些实际参数就很好理解了:

这是一篇关于面试经历的文章,作者分享了在腾讯微众银行web开发岗面试时遇到的一道思考题:如何在25匹马和5条跑道的条件下,仅通过肉眼观测选出最快的三匹马。通过详细解析,得出最少需要跑7次比赛来确定前三名的结论。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



