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场比赛。

发布了134 篇原创文章 · 获赞 197 · 访问量 41万+

猜你喜欢

转载自blog.csdn.net/u011733020/article/details/103807085
今日推荐