昨天,有網(wǎng)友私信我,說去阿里面試,徹底的被打擊到了。問了為什么網(wǎng)上大量使用ThreadLocal的源碼都會(huì)加上
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),竹溪企業(yè)網(wǎng)站建設(shè),竹溪品牌網(wǎng)站建設(shè),網(wǎng)站定制,竹溪網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,竹溪網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。private static?他被難住了,因?yàn)樗麖膩矶紱]有考慮過這個(gè)問題。無獨(dú)有偶,今天筆者又發(fā)現(xiàn)有網(wǎng)友吐槽了一道騰
訊的面試題,我們一起來看看。
騰訊算法面試題:64匹馬8個(gè)跑道需要多少輪才能選出最快的四匹?
在互聯(lián)網(wǎng)職場(chǎng)論壇,一名程序員發(fā)帖求助到。二面騰訊,其中一個(gè)算法題:64匹馬,8個(gè)跑道,選出最快的四匹馬。
最少跑幾個(gè)回合能夠選出最快的四匹馬。這樣的求助也是瞬間引來了網(wǎng)友的圍觀與議論,我們先來看看網(wǎng)友們都是
怎么解答這道題,一起來看看。
騰訊算法面試題:64匹馬8個(gè)跑道需要多少輪才能選出最快的四匹?
有網(wǎng)友就說到。南大的算法課題目之一,騰訊這么沒創(chuàng)造力嗎?又是我二面題目??梢杂?jì)時(shí)嗎,計(jì)時(shí)的話就8場(chǎng)。
有網(wǎng)友就回答到。隨機(jī)分八組比賽,這是8場(chǎng)了,把每組第一名拿出來跑一場(chǎng),每次把第一名選出來,把所在組的
后一名拿出來補(bǔ)位,跟剩下的跑,這樣跑4次就ok了??偣?2次。不知道對(duì)不對(duì)
也有網(wǎng)友分析到。64分8組比8場(chǎng),淘汰每組后四名;8個(gè)第一比1場(chǎng),淘汰后四名所在組;剩余16匹馬中有一個(gè)確定
冠軍,除此之外還剩第一名所在組后三位,第二名所在組前三位,第三名所在組前兩位,第四名所在組第一位,共計(jì)
9匹馬未定,隨機(jī)選8匹賽1場(chǎng),取前三名;前三名+上一場(chǎng)漏掉的馬賽1場(chǎng),再取前三名加上固定冠軍就是最快的四匹
馬。是這個(gè)思路不?
騰訊算法面試題:64匹馬8個(gè)跑道需要多少輪才能選出最快的四匹?
更多的網(wǎng)友加入了討論。最小堆排序,8個(gè)回合吧,64匹馬每匹馬跑一次,根據(jù)每匹馬花的時(shí)間,取最快的四匹馬。
我7年前去騰訊面實(shí)習(xí),三面就面的這個(gè)問題。
可以計(jì)時(shí)的話8場(chǎng)。不計(jì)時(shí)的話,選4匹家里有椅子的送到黎總辦公室,剩余60殺掉,僅需跑0場(chǎng)。8輪對(duì)8組馬分組
排序,去除每組后四名,剩余8組*4匹。第一名跑一次淘汰后四名所在的組,剩余4組*4匹。在進(jìn)行2次。每次第一
都會(huì)有一個(gè)肯定是前四。
這個(gè)題目出的,連一些基礎(chǔ)條件都沒給。1,馬的發(fā)揮是恒定的,每次跑相同的距離,時(shí)間務(wù)必相同。2,能不能用
秒表計(jì)時(shí)?3,賽道長(zhǎng)度不能長(zhǎng)到跑死馬的長(zhǎng)度。
看了答案才懂。不斷縮小檢索空間,淘汰盡可能多的數(shù)。另外這題,剩9匹馬時(shí),一直以為還有更簡(jiǎn)單的。
騰訊算法面試題:64匹馬8個(gè)跑道需要多少輪才能選出最快的四匹?
更多的網(wǎng)友參與了回答。1,分8組,每組一次跑完,決出前4名,每組的后4名淘汰,這樣8個(gè)來回之后,還剩32匹
馬;2,把每一組的第一名拉出來賽一回合,淘汰后4名以及他整個(gè)小組,同時(shí)排第一的組,冠軍出來了,還剩3匹
馬,第二組,去掉最后一名,剩3屁,第三組去掉2名剩2名,最后一組剩1名,所以9個(gè)回合下來,剩9匹馬爭(zhēng)3個(gè)名
額;3,8匹馬一組,再來一回合,選前3名,這三個(gè)和剩下那個(gè)再來一次,選前3名。一共11回合,全部搞定。
最少10場(chǎng)(剩9匹的時(shí)候,選第一組的后3,第二組的前3,第三組的前2,如果第三組的第一這輪名次大于等于3,
那就已經(jīng)分出前四了),最多11場(chǎng)
騰訊算法面試題:64匹馬8個(gè)跑道需要多少輪才能選出最快的四匹?
也有比較理智的網(wǎng)友分析到。8+4+2+1,每一次比賽都需要留下來最快的4個(gè),大數(shù)據(jù)面試?yán)锩鎯?nèi)存不夠,需要
外部排序的一個(gè)變種,信息論算一下就出來了,8個(gè)賽道一次提供A8,8的信息,a64,60。 思路對(duì)但是以我的尿性
應(yīng)該還有點(diǎn)bug,我們組也考這道題,我覺得當(dāng)年進(jìn)來的時(shí)候覺得這不就是奧數(shù)么很簡(jiǎn)單,5年沒有變竟然。感覺8
個(gè)回合就夠了啊,每只馬跑一次,用毫秒表記錄下每個(gè)馬跑的時(shí)間,去前四。
step one:分八組,各跑一輪,依成績(jī)組內(nèi)編號(hào)。step two:各組一號(hào)跑一輪,依成績(jī)編號(hào)。此時(shí)共跑九輪選出最快
馬。step three:此時(shí)【1】【2】馬(即第一次參賽跑第一,第二次參賽跑第二的馬)與最快馬第一次參賽剩下的七
匹為可能的次快馬。讓它們八匹跑一輪。此時(shí)假如【1】【2】馬在該輪比賽中跑第三。則該輪的第一第二馬分別為
64匹中的亞軍與季軍。而【1】【2】馬為所有馬中第四快的馬。至此10輪選出前四。因題目問“最少”,故第十輪
不考慮其他可能出現(xiàn)的結(jié)果。
騰訊算法面試題:64匹馬8個(gè)跑道需要多少輪才能選出最快的四匹?
看了這么多網(wǎng)友的回復(fù),其實(shí)答對(duì)的網(wǎng)友也是不少的。看似一個(gè)簡(jiǎn)單的問題,確實(shí)考的也是非常全面,不知道各位網(wǎng)
友對(duì)于騰訊這樣的面試題有沒有更清晰的答案,歡迎留言與筆者一起探討。
原文鏈接:https://blog.csdn.net/qq_21118431/article/details/102925078
新聞名稱:騰訊算法面試題:64匹馬8個(gè)跑道需要多少輪才能選出最快的四匹?-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://chinadenli.net/article36/cejssg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站維護(hù)、靜態(tài)網(wǎng)站、品牌網(wǎng)站制作、全網(wǎng)營(yíng)銷推廣、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容