Google的一道面试题

例:赛马,共有25匹马,但只有5条跑道,在不借助其他工具的情况下,选出跑的最快的三匹马。(可以重复比赛)

答:   可以先将25匹马分为5组(A,B,C,D,E),每组进行比赛,(比赛次数:5)

        用A1,A2,A3,A4,A5分别表示A组第一名,A组第二名,A组第三名,A组第四名,A组第五名,

        用B1,B2,B3,B4,B5分别表示B组第一名,B组第二名,B组第三名,B组第四名,B组第五名,

*

*

*

*

*

用E1,E2,E3,E4,E5分别表示E组第一名,E组第二名,E组第三名,E组第四名,E组第五名。

        因为要确定前三名,所以每组的第四第五名就被淘汰,此时剩15匹马,每组三匹马,并且可以确定每一组的第一名。

        将每一组的第一名放进一组进行赛马(比赛次数:6);假设排名为A1>B1>C1>D1>E1;那么后两名D1,E1所在的组排除掉(因为组里的第一名都拿不出成绩,那么其余人不可能是高手--O(∩_∩)O);此时剩9匹马。

        

         上图:C3和C2不可能是前三名,因为他们的大哥是第三名,他俩连他大哥都没跑过,其次B3不可能是前三名,第一次比赛他没有跑过大哥(B1),二哥(B2)。B2可能是第三名,因为他还没有跟C1比过,同理,A2,A3的大哥(A1)是第一,那么它们需要跟B2,C1,B1,进行第二第三名的争夺。此时除去第一名A1,只剩下5匹马。

        上图:A1毋庸置疑就是最快的那匹马,最后将A2,A3,B2,B1,C1放进一组进行比较(比赛次数:7),取前两名分别为比赛的第二第三名。

---------------------------------------------------------------------------------------------------------------------------------

        此时一共比赛了7次:

        前五次是25匹马分成5组进行比赛,第六次是将前五组的第一名放进一组进行比赛,第七次是争取第二第三的比赛。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值