歡迎來(lái)到 職場(chǎng)詞典網(wǎng) , 一個(gè)優(yōu)秀的職場(chǎng)知識(shí)學(xué)習(xí)網(wǎng)站!
面試題以及答案(一)
應(yīng)聘職位:軟件工程師
10)假設(shè)你在衣櫥里掛滿襯衫,很難從中挑出某一件來(lái)。請(qǐng)問(wèn)你打算怎樣整理一下,使得它們?nèi)菀滋暨x?
答案:此題沒(méi)有固定答案。考驗(yàn)的是被面試者在解決問(wèn)題方面的想象力和創(chuàng)造性。我們覺(jué)得讀者”Dude”的這個(gè)答案可能會(huì)給Google留下深刻印象:把它們按布料的種類進(jìn)行哈希(HASH)組合。然后每類再按2-3-4樹(shù)或紅黑樹(shù)(都是計(jì)算機(jī)算法)排序。
應(yīng)聘職位:軟件工程師
11)給你一副井字棋(Tic Tac Toe)。。。你來(lái)寫一個(gè)程序,以整個(gè)游戲和一個(gè)玩家的名字為參數(shù)。此函數(shù)需返回游戲結(jié)果,即此玩家是否贏了。首先你要決定使用哪種數(shù)據(jù)結(jié)構(gòu)處理游戲。你還要先講出使用哪種算法,然后寫出代碼。注意:這個(gè)游戲中的某些格子里可能是空的。你的數(shù)據(jù)結(jié)構(gòu)需要考慮到這個(gè)條件。
答案:所需要的數(shù)據(jù)結(jié)構(gòu)應(yīng)為二元字符數(shù)列。調(diào)用此函數(shù)檢查6種條件,判斷是否有贏家。其中第6種條件就是看是否還有空格。如果有贏家,則字符判斷玩家是X還是O。因此你需要一個(gè)旗標(biāo)。如果有贏家則返回此值并結(jié)束游戲,如果沒(méi)有則繼續(xù)游戲。
應(yīng)聘職位:軟件工程師
12)為1萬(wàn)億個(gè)數(shù)排序需要多長(zhǎng)時(shí)間?請(qǐng)說(shuō)出一個(gè)靠譜的估計(jì)。
答案:這又是一個(gè)沒(méi)有標(biāo)準(zhǔn)答案的題目。目的是考察被面試者的創(chuàng)造性。我們傾向于兩位讀者給出的簡(jiǎn)單答案:用歸并排序法(Merge Sort)排序。平均情況下為O(1,000,000,000,000 Log 1,000,000,000,000)。最差情況下為O(1,000,000,000,000 Log 1,000,000,000,000)。現(xiàn)在可以做到每秒10億次的運(yùn)算,所以大約應(yīng)需要3000秒。
應(yīng)聘職位:軟件工程師
13)請(qǐng)?jiān)O(shè)計(jì)一個(gè)“蛙跳”游戲的算法,并寫出方案的代碼。。。
答案:這個(gè)游戲的目標(biāo)是引導(dǎo)一個(gè)青蛙避開(kāi)來(lái)往車輛,橫穿一條繁忙的公路。你可以用一個(gè)數(shù)列來(lái)代表一條車道。將方案簡(jiǎn)化成一條N車道的公路。我們只找到一個(gè)對(duì)此問(wèn)題的解答,它來(lái)自Glassdoor網(wǎng)站:“一個(gè)方法是寫一個(gè)遞歸算法來(lái)決定何時(shí)等待,何時(shí)跳進(jìn)下一個(gè)車道。這由下條車道中是否有逐漸接近的障礙物來(lái)決定。”
應(yīng)聘職位:軟件工程師
14)Google每年收到多少份軟件工程師的簡(jiǎn)歷?這也是在考察應(yīng)試者是否有能力把問(wèn)題簡(jiǎn)單明確化,并提出創(chuàng)造性的解決方案。
答案:一個(gè)“量化報(bào)酬分析師”職位的求職者,應(yīng)該知道2008年Google雇傭了3400人。估計(jì)其中75%,即2550人,應(yīng)該是工程師,并且Google和哈佛的錄取率類似,即從申請(qǐng)人中取3%。由此可知應(yīng)該收到大約85000簡(jiǎn)歷(85000 x 3% = 2550)
應(yīng)聘職位:量化報(bào)酬分析師
15)給你一個(gè)數(shù)字鏈表。。。鏈表到頭之后又會(huì)從頭開(kāi)始(循環(huán)鏈表)。請(qǐng)寫出尋找鏈表中最小數(shù)字的最高效算法。找出此鏈表中的任意給定數(shù)字。鏈表中的數(shù)字總是不斷增大的,但是你不知道循環(huán)鏈表從何處開(kāi)始。例:38, 40, 55, 89, 6, 13, 20, 23, 36.
答案:我們最喜歡的答案來(lái)自讀者”dude”:建立臨時(shí)指針并從根上開(kāi)始。(循環(huán)鏈表大多數(shù)情況下都有向前或向后指針。)判斷是向前更大還是向后更大。如果向前更大則知道已達(dá)到鏈表最后,又重新位于鏈表開(kāi)始位置。如果向前更大,那你可以向后搜尋并進(jìn)行數(shù)字比較。如果既沒(méi)有根也沒(méi)有指針指向鏈表,那么你的數(shù)據(jù)就丟失在內(nèi)存中了。
下一篇:雀巢的面試真題 下一篇 【方向鍵 ( → )下一篇】
上一篇:機(jī)械行業(yè)面試問(wèn)題及答案 上一篇 【方向鍵 ( ← )上一篇】
快搜