【大厂智力题】64匹马,8个赛道,找出前4名最少比赛多少场?

如果能计时,果断8场, 然并卵,事情没有那么简单:不能计时。

那就老老实实分析。

首先将马分成八组,赛八场,每场后四名淘汰了。

然后将八组中,每组跑得最快的马进行比赛,淘汰后四名的组。

这个时候剩下四组从快到慢编号为A B C D。每一组从快到慢编号从1到4,依次增大。这个时候可以用下面这张图表示:
【大厂智力题】64匹马,8个赛道,找出前4名最少比赛多少场?_第1张图片

其中A1是最快的毋庸置疑,考虑到速度 A1 > B1 > C1 > D1的原因,D2 、D3、D4、C3、C4、B4无缘前四名。

下面要从绿色的方块找到前三名。可是绿色的方块有9个,一般至少比较两次。总共11次。

不过也有可能比较1次,比如说除了A2,其他八匹马比赛,结果A3进了前三,那么A2必定在所有马前四名中。

当然,除了除了B1,其他八匹马比赛,结果B2进了前三,那么B1必定在所有马前四名中,这个时候只需要去除这场比赛第三名即可,不过可能无法确定前四名速度快慢的先后顺序。

你可能感兴趣的:(算法问题)