64匹马,8个赛道,找出跑得最快的4匹马(面试题详解)
Posted CodingForAndroid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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场比赛。
以上是关于64匹马,8个赛道,找出跑得最快的4匹马(面试题详解)的主要内容,如果未能解决你的问题,请参考以下文章
64匹马,8个赛道,找出前4名最少比赛多少场?——最快10次,最慢11次;
64匹马,8个赛道,找出前4名最少比赛多少场?——最快10次,最慢11次;