64匹马,8个赛道,找出跑得最快的4匹马(面试题详解)

首先,可以将马分为8组,每组各跑一次,然后淘汰掉后四名,这里淘汰后四名是因为只需要跑的最快的四匹马。
在这里插入图片描述

然后取8次跑的第一名进行比赛,然后淘汰掉后四名所在的组的所有马,因为,后四名所在的组的第一名没有跑过前四名的马,所以可以直接淘汰。

在这里插入图片描述

这时候还剩下16匹马,此时黄色部分是剩余的马,在这里其实可以继续淘汰,因为D1是第九次的第四名,但D1又是它3所在组的第一名,那么对应的D2,D3,D4都可以继续淘汰掉。但是第四名也可能出现在C2中,C2是所在组的第二名,那么C3,C4也可以淘汰了,根据这样进行分析,可以得到B4也可以淘汰了。最后剩余的马如下图:
在这里插入图片描述

最后剩余的就是去掉上一步淘汰的马。总数为10匹,其实这时候最快的一批已经出来了,那么就将剩余的9匹马,选择一匹,剩余的8匹,重新跑一下选择最快的3匹。

然后将跑出来的3匹马和刚没有跑的1匹,默认最快的一匹,再跑一场,最后最快的4匹也就出来了。最少要使用11场比赛。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值