職位類型:數(shù)據(jù)工程師
面試地點(diǎn):西安
招聘公司:美團(tuán)網(wǎng)
第一面:自我介紹和項(xiàng)目介紹:
由于我研究生階段是關(guān)于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)方面的研究,所以面試官也沒(méi)有什么深究的問(wèn)題。然后是算法題目:
1.如何快速在無(wú)序的數(shù)組中找到第K大的數(shù)。
我提出了三種方案:
⑴建立K個(gè)元素的最小堆,然后順次掃描無(wú)序數(shù)組后面的元素,并與堆頂元素比較。時(shí)間復(fù)雜度還行。
⑵利用快排排好序,然后找到第K大的數(shù)。這種思路顯而易見。
⑶快排的變種,記錄標(biāo)志元素小的個(gè)數(shù),然后折半排序。貌似比較快。
2.如何找出字符串中的最大回文字串:
我的思路:
⑴建立兩個(gè)指針,一個(gè)指向字符串頭;一個(gè)指向字符串尾部;然后全掃描和排序;比如
“sdsds”
則從前到后:
S sd sds sdsds
從后到前:
S sd sds sdsd sdsds
然后按字母升序排序,統(tǒng)計(jì)字符串長(zhǎng)度。顯然比較暴力!
⑵其實(shí)將原字符串反轉(zhuǎn),就是求兩個(gè)字符串最長(zhǎng)公共字串。
大概思路就是建立二維數(shù)組,然后掃描記錄。
一面就結(jié)束了,然后二面。
二面還是技術(shù)面:
1.問(wèn)我GPU的問(wèn)題,之前了解一些,所以回答還尚可。
2.針對(duì)我專業(yè)是系統(tǒng)結(jié)構(gòu),讓我描述處理器從PC指令寄存器開始到訪存成功之間的過(guò)程。我描術(shù)了半天,原來(lái)是讓我描述虛擬地址和物理地址的轉(zhuǎn)化。
我寫說(shuō)明地址轉(zhuǎn)化的數(shù)據(jù)結(jié)構(gòu),然后讓我設(shè)計(jì)快速轉(zhuǎn)換的體系結(jié)構(gòu)和算法。我說(shuō)是索引表結(jié)構(gòu),然后問(wèn)我設(shè)計(jì)幾級(jí)。我從工程學(xué)的角度回答了問(wèn)題。
3.最后問(wèn)我TCP和IP協(xié)議。
4.概率題目,關(guān)于獨(dú)立隨機(jī)變量XY的聯(lián)合密度函數(shù)求解。
輪回答還不錯(cuò),進(jìn)入第三輪面試。第三輪面試,面試官很和氣。給我水和食物,讓我放松狀態(tài)。
關(guān)于概率的題目,很開放的題目---“我當(dāng)上國(guó)家主席的概率”我的解決方案三種。幾天后得到offer邀請(qǐng),北京薪酬是22W ;但是因?yàn)榕吕郏途芰恕?/p>