谷歌面试题:25个人如何在5条跑道上决前三名

谷歌有一个面试题题目很简单,25个人在只有5条跑道上如何用最少的比赛方法决出前三名

这个问题你这样想,5条跑到每个跑道一个人,也就是说最少一组可以同时比5个人,25/5=5也就是可以分成5组.

为了方便我们就假设,分成ABCDE五组,A1,A2,A3,A4,A5代表五个成员,同样B1.... C1...D1....E1....各个成员如下如所示

然后开始比赛,每一列分别进入跑到开始比赛,一共进行5轮比赛(一共5列嘛),为了方便我们假设,每组标号为1的获得本组的第一名,标号为2的代表本组第二名一次类推.这样进行5轮比赛之后,我们在比一次,就是每组的第一名进行比赛,即A1,B1,C1,D1,E1 (正好五个人),假如A1胜出,第一名就出来了, 然后第二名怎么角逐,第二名这样A2,B1,C1,D1,E1 角逐第二名,这里边无论谁获得第一名都无所谓,我们假设A2获得了第一名,那么第三名角逐就是A3,B1,C1,D1,E1,我们假设C1获得第二名,那么第三名角逐,就这样安排A2,B1,C2,D1,E1,同样方法你假如E1获得第二名,那么第三名角逐就是A2,B1,C2,D1,E2 

也就是说我们一共5(淘汰三)+1(冠军)+1(亚军)+1 (季军)=8次就可以角逐前三名.

注意:我第一次是这样想的先进性五组淘汰赛,然后A1,B1,C1,D1,E1 比一次 然后直接就可以排除前三名,这样想是不对的,你想我们假设A1,B1,C1获得了前三名,A1跑的比B1快,同样A1也比A2跑得快  (既A1>B1 A1>A2 )你没法证明B1和A2之间谁跑的快对不对.

但是你如果给面试过说一共需要8次,那么这个答案就错了.确实需要7次就可以.

同样,5组淘汰赛,然后一组第一名角逐(A1,B1,C1,D1,E1) 不变,我们题目是决出前三名,这样操完之后已经决出第一名了,我们剩下目标是决出第二名,第三名,也就是只有2个名额了,你想啊A1,B1,C1,D1,E1 第一名除掉,第四名,第五名除掉,(也就是他们根本就没有比赛资格了,如果让他们比赛就相当于,世界杯足球赛,踢到角逐冠亚军的时候,安排一场亚军对中国的比赛)只剩下第二名和第三名我们假设B1,C1为第二名第三名. 如下图所示

第二名的角逐资格为,B1,和A2(即A组的第二名)

第三名的角逐资格为,A组的第三名,B组的第二名,以及C1(A3,B2,C1)

2+3一共五个人,正好一同上跑道 一次性比完

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值