阿里巴巴面試算法題目:25匹賽馬,5個跑道,也就是說每次有5匹馬可以同時比賽。問最少比賽多少次可以知道跑得最快的5匹馬


考慮最壞的情況,那么有一個比賽9次的可行解:
25匹馬分5組,每組比一次。
然后5個組的冠軍再比一次。
共進行了6次比賽,結果如下:


其中,紅色馬是第一名;
綠色馬有機會得第二名;
淺藍色馬有機會得第三名;
深藍色馬有機會得第四名;
紫色馬有機會得第五名。
下一場是2匹綠色馬和3匹淺藍色馬比賽,可決出第二名和第三名。
例如,一種可能的結果如下:


那么上述結果可以寫成:


於是前三名是唯一確定的。
下一場是3匹藍色馬加2匹紫色馬比賽,可確定第四名。
無論比賽結果如何,只要再加賽1場一定可以確定第五名。
共進行了9場比賽。
但樓主只要求確定跑得最快的5匹馬,並不要求確定這5匹馬的確切排名。
所以可能會有更加巧妙的方案。
讓我們期待更佳的方案出現吧。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com