您的位置:首页 > 职场人生

阿里巴巴面试算法题目:25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马

2010-08-25 23:31 1826 查看
考虑最坏的情况,那么有一个比赛9次的可行解:

25匹马分5组,每组比一次。

然后5个组的冠军再比一次。

共进行了6次比赛,结果如下:

下载

(2.03 KB)

2010-2-4 18:06





其中,红色马是第一名;

绿色马有机会得第二名;

浅蓝色马有机会得第三名;

深蓝色马有机会得第四名;

紫色马有机会得第五名。

下一场是2匹绿色马和3匹浅蓝色马比赛,可决出第二名和第三名。

例如,一种可能的结果如下:

下载

(2.19 KB)

2010-2-4 18:06





那么上述结果可以写成:

下载

(2.1 KB)

2010-2-4 18:06





于是前三名是唯一确定的。

下一场是3匹蓝色马加2匹紫色马比赛,可确定第四名。

无论比赛结果如何,只要再加赛1场一定可以确定第五名。

共进行了9场比赛。

但楼主只要求确定跑得最快的5匹马,并不要求确定这5匹马的确切排名。

所以可能会有更加巧妙的方案。

让我们期待更佳的方案出现吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐