Boss直聘趣味算法题---64匹马,8个赛道,找出跑得最快的4匹马

64匹马,8个赛道,找出跑得最快的4匹马,至少比赛几场?

第一步

全部马分为8组,每组8匹,每组各跑一次,然后淘汰掉每组的后四名,如下图(需要比赛8场)


Boss直聘趣味算法题---64匹马,8个赛道,找出跑得最快的4匹马_第1张图片
image.png

第二步

取每组第一名进行一次比赛,然后淘汰最后四名所在组的所有马,如下图(需要比赛1场)

Boss直聘趣味算法题---64匹马,8个赛道,找出跑得最快的4匹马_第2张图片
image.png

这个时候总冠军已经诞生,它就是A1,蓝色区域(它不需要比赛了),而其他可能跑得最快的三匹马只可能是下图中的黄色区域了(A2,A3,A4,B1,B2,B3,C1,C2,D1,共9匹马)

Boss直聘趣味算法题---64匹马,8个赛道,找出跑得最快的4匹马_第3张图片
image.png

第三步

只要从上面的9匹马中找出跑得最快的三匹马就可以了,但是现在只要8个跑道,怎么办?那就随机选出8匹马进行一次比赛吧(需要比赛一场)

第四步

上面比赛完,选出了前三名,但是9匹马中还有一匹马没跑呢,它可能是一个潜力股啊,那就和前三名比一比吧,这四匹马比一场,选出前三名。最后加上总冠军,跑得最快的四匹马诞生了!!!(需要一场比赛)

最后,一共需要比赛的场次:8 + 1 + 1 + 1 = 11 场

你可能感兴趣的:(Boss直聘趣味算法题---64匹马,8个赛道,找出跑得最快的4匹马)