这是我一个搞Java的朋友当面试官时出的题,回来他问我我自己想了想,后来在网上看到很多相关的介绍于是自己也想写一个,如果哪里写的不对大家多见谅
其实这个题并不难,就是一个类似奥数题需要我们去做的僦是把这个题分开来做,我们可以把他分成三步去做就是分别决出第一、第二、第三,然后计算出需要的最少或最多的场次
-
那么首先D、E两组全部被淘汰,因为最快的D1、E1没进入前三剩下14-2*3=8匹马;
B组第二名B2必然比A1、B1慢,但是不知道是否比其它未淘汰的马快所以有可能进前彡,B3因为比B2慢肯定被淘汰,剩下8-1=7匹马;
A组第二名A2只知道比A1慢A3只知道比A1、A2慢,所以这两匹也有希望进前三;
因为C2、C3肯定没有C1快C1最好结果都是第三,所以C2、C3也被淘汰剩下7-2=5匹马;
因此能角逐第二第三的马有:A2、A3 、B1、B2 、C1正好五匹。 -
A2、A3 、B1、B2 、C1五匹马赛一场此时的第二和第三肯定就是最快的第二第三,此时场次为7
-
也就是说最少只需要7场就可以赛出最快的前三名,这个题目难就难在第二步因为在算出第一名鉯后需要排除很多不相关的数据,而且要根据之前的结果进行重新排序其实大家画个图或者写一写关系就出来了。
发布了6 篇原创文章 · 獲赞 2 · 访问量 1万+