程序员求助:腾讯面试题,64匹马8个跑道,多少轮选出最快的四匹( 二 )

也有网友分析到。64分8组比8场,淘汰每组后四名;8个第一比1场,淘汰后四名所在组;剩余16匹马中有一个确定冠军,除此之外还剩第一名所在组后三位,第二名所在组前三位,第三名所在组前两位,第四名所在组第一位,共计9匹马未定,随机选8匹赛1场,取前三名;前三名+上一场漏掉的马赛1场,再取前三名加上固定冠军就是最快的四匹马。是这个思路不?

更多的网友加入了讨论。最小堆排序,8个回合吧,64匹马每匹马跑一次,根据每匹马花的时间,取最快的四匹马。我7年前去腾讯面实习,三面就面的这个问题。

可以计时的话8场。不计时的话,选4匹家里有椅子的送到黎总办公室,剩余60杀掉,仅需跑0场。8轮对8组马分组排序,去除每组后四名,剩余8组4匹。第一名跑一次淘汰后四名所在的组,剩余4组4匹。在进行2次。每次第一都会有一个肯定是前四。

这个题目出的,连一些基础条件都没给。1,马的发挥是恒定的,每次跑相同的距离,时间务必相同。2,能不能用秒表计时?3,赛道长度不能长到跑死马的长度。

看了答案才懂。不断缩小检索空间,淘汰尽可能多的数。另外这题,剩9匹马时,一直以为还有更简单的。

推荐阅读