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

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

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

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

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

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

相关文章
相关标签/搜索