騰訊的一道測試題

2022-08-24 02:06:10 字數 559 閱讀 9599

有36輛電單車6個賽道,在沒有計時器的情況下,如果要選出跑的最快的三輛車,至少需要幾次比賽?

我最初的想法是:要選出最快的三輛車,先讓這36輛車分成6組,每一組比一下,選出每一組的第一名,然後讓這6個第一名比一次,選出前三名就行了,果斷的選擇了7次,顯然這是錯誤的(這個題和田忌賽馬有那麼一點點的相似,看來的我智商不如古人啊.....囧)。

後來仔細一想,我覺得應該這麼想:假設36輛車被分配到了a,b,c,d,e,f六組中,我們給每一組比賽一次,從中選出每一組的三輛車,a1-a3...f1-f3(為什麼要選出三輛車呢?為了防止出現36輛車中最快的3輛都被分配到了a組中,如果按照最開始的想法,第一次比賽就把實際上第二快和第三快的車都給淘汰了,所以最開始的想法是錯誤的,選出三輛就不會出現實際上最快的前三輛車被淘汰的情況),這6組需要6次比賽,然後我們將a1,b1,c1,d1,e1和f1(假設a1,b1,c1,d1,e1,f1是每組中最快的車)比賽一次,選出前三名,假設前三名是a1,b1,c1,那麼此時被淘汰的車是def這三組的所有車(因為這三組中最快的三輛車都輸了),剩下的問題就是在a1-a3,b1-b3和c1-c3這9輛車中找到最快的三輛車,顯然至少需要2次比賽。

一道Erlang測試題的多種解法

題目 remove in xx 題目解讀 要求程式設計將乙個字串中首尾配對的 去掉。如 zhongsan hu 有兩種解法 1 採用遞迴演算法。先比較首尾是否配對,如果不配對則列印出整個佇列,如果配對,則去掉首尾,再對子佇列繼續進行遞迴計算。遍歷次數多,效率偏低 2 計算首部 個數,再計算尾部 個數...

一道騰訊前端試題

題目 有一組數字,從1到n 假設n 10000 從中任意刪除了3個數,順序也被打亂,剩餘數字放在乙個n 3的陣列裡,請找出丟失的數字,要求演算法比較快。方法一,我寫的程式 var ary 1,5,7,6,4,8,10 var n ary.length 3 var newary document.wr...

一道騰訊校招試題

題目 猴子摘香蕉一次可以摘1個或2個,總共50個,有多少種摘法?分析 得到如下規律 實際上是乙個斐波那契數列 以下為我使用的4種解法,分別是遞迴 迭代 64位整型數 陣列 類似於大數相加 1 遞迴 其中加入了計時器 include include using namespace std int f ...