腾讯算法面试题:64匹马,8个跑道,选出最快的4匹,最少需要几次

第一步:所有64匹,随机分8组,每组跑一遍,把每组后面4个淘汰掉。用了8次,剩余32匹

第二步:剩余的4个里面,用每组最快的那个组成一个新组,跑一遍,把后面4个所在组淘汰掉。用了1次,剩余16匹

第三步:把第二步跑第一名的单独拿出来,把第二步跑第二名的拿出来,剩余8匹,让这8匹跑一次,如果跑的最快的在两个以上的组,用第二快替换掉第三名就得到最快的4匹马。如果最快的都在第一名所在的组,进入第四步。用了1次。

第四步:用第一名所在组的后3名加第二步的第二名组成一组,把最慢的一个淘汰掉,和第二步的第一名加起来就是最终的结果,最快的4匹马。用了1次。

所以最少要10次或者11次能找出最快的4匹马。

阅读 3.2k

推荐阅读