腾讯面试的一道思维逻辑题

1、题目描述

25匹马,5条赛道,每条赛道同时只能有一匹马跑,假设每匹马的水平都很稳定,在没有计时器的情况下最少需要比几场才能确定前三名。

2、思路解析

思路一:

25匹马分成5组,每组先进行一次比赛,这就要比5场。

我们给每个小组内进行完比赛的马进行标号,排名依次递减:Ai > Bi > Ci > Di > Ei,5 >= i >= 1。

五场比赛后确定了每个小组内的名次,接下来只需要把每个小组的第一名拿出来A1 A2 A3 A4 A5比一次,确定每个小组第一名的排名。假设结果是 A1 > A2 > A3 > A4 > A5,我们会得到下面的矩阵:

这样确定第一名A1。

根据上面的矩阵规律,可以确定第二名只能从B1和A2之间产生,接下来我们针对这两种情况来进行分别讨论。

如果第二名是B1,那么第三名只能从A2 B2 C1 之间产生。

如果第二名是A2,那么第三名只能从B1 B2 A3 之间产生。

所以只需要再将 A2 A3 B1 B2 C1这5匹马比一次就能确定第二名和第三名。
总共的比赛场次是5+1+1=7,最少需要比7场可以确定前三名。

作者:溜达虎爱编程
链接:https://leetcode.cn/circle/discuss/V6ZITu/
来源:力扣(LeetCode)

思路二:

首先,我们将 25 匹赛马分为 5 组,让每组马进行组内比赛,得到组内排名,假设结果为 A1>A2>A3>A4>A5  A1>A2>A3>A4>A5  A1​>A2​>A3​>A4​>A5​(此时进行了 5 轮比赛)。因为组内排名第四与第五名不可能竞争全场前三名,所以排除每一组的第四与第五名。

第一回合

 

3.2 第二回合

其次,每一组跑得最快的一匹马作为代表元参与一轮 “代表赛”,假设比赛结果是:[A1>B1>C1>D1>E1][A1>B1>C1>D1>E1][A1​>B1​>C1​>D1​>E1​],由此可以排除失去竞争资格的赛马:

  • A1​ 是代表赛中最快的,所以 A1​ 一定是全场第一名;

  • B1​ 是代表赛中的第二名,最快情况下 B1​ 同时也是全场的第二名,则 B3​ 前面还有 B2​,所以 B3​ 失去竞争前三名的资格;

  • C1​ 是代表赛中的第三名,最快情况下 C1 同时也是全场的第三名,则 C2、C3{C2、C3}C2​、C3​ 失去前三名的竞争资格;

  • D1​ 和 D1​ 是代表赛的四五名,说明 D 组和 E 组都失去了前三名的竞争资格;

第二回合

 

3.3 第三回合

此时,剩余的未知顺序的赛马正好有 5 匹,加赛一轮就可以得出第二名和第三名的归属。三个回合总共进行了 7 轮比赛,故答案就是 7。

作者:彭旭锐
链接:https://juejin.cn/post/6903861591188783112
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值