面經(jīng)?|?2021校招算法崗,勸退還是繼續(xù)
時(shí)間:2021-09-10 16:35:41
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
[導(dǎo)讀]“給你a、b兩個(gè)文件,各存放50億條URL,每條URL占用64字節(jié),內(nèi)存限制是4G,請(qǐng)你編寫代碼找出a、b文件中相同的URL”,這是某大廠的一道秋招筆試題。?如果面試的人是你,會(huì)怎么回答?50億條URL,每個(gè)64字節(jié),加起來就是320G,最簡(jiǎn)單不用動(dòng)腦筋的方法,就是把他們加載到內(nèi)...
“給你 a、b 兩個(gè)文件,各存放 50 億條 URL,每條 URL 占用 64 字節(jié),內(nèi)存限制是 4G,請(qǐng)你編寫代碼找出 a、b 文件中相同的 URL”,這是某大廠的一道秋招筆試題。
?如果面試的人是你,會(huì)怎么回答?50 億條 URL,每個(gè) 64 字節(jié),加起來就是 320G,最簡(jiǎn)單不用動(dòng)腦筋的方法,就是把他們加載到內(nèi)存里直接比對(duì),但數(shù)據(jù)量太大,根本行不通。?進(jìn)一步分析,你可能會(huì)想到對(duì)文件做拆分,對(duì) URL 做排序,然后逐步做分析。但數(shù)據(jù)量這么大,具體怎么做呢?總不能說,我把 50 億條 URL,按從前到后的順序,拆分為 2000 個(gè)文件,然后挨個(gè)對(duì)比,多做幾次,結(jié)果就出來了。?雖然這樣能行,但也意味著你會(huì)被淘汰。因?yàn)檫@就是面試官要考察的關(guān)鍵點(diǎn)。對(duì)這樣的題目,面試官想看到的是你能否想到分治法、哈希,或布隆過濾器之類的知識(shí)點(diǎn)。換句話說,這其實(shí)是一道算法題,而不是程序題。?其實(shí),每家公司在面試時(shí)都會(huì)重點(diǎn)考察候選者的算法能力,甚至?xí)屇惝?dāng)場(chǎng)寫代碼。可以說,算法能力直接決定了一個(gè)程序員的好壞。用武俠小說做比喻,算法是“內(nèi)功”,而編程的各種框架,就猶如各種“招式”,內(nèi)功不扎實(shí),再多招式也只是花拳繡腿。?細(xì)數(shù)大廠的算法題,一般對(duì)應(yīng)都是 LeetCode 中級(jí)模式,想通過面試,就得花時(shí)間好好準(zhǔn)備。我知道,不少人都有過在 LeetCode 瘋狂刷題的經(jīng)歷,但一年下來,發(fā)現(xiàn)自己沒什么長(zhǎng)進(jìn),面試官隨便換個(gè)問法,就支支吾吾答不出來了。?其實(shí),刷題不能盲目,得找對(duì)方法。我認(rèn)識(shí)個(gè)人,在這方面可謂「專家」,他在同濟(jì)大學(xué)讀本科時(shí),就拿到了 ACM 亞洲分區(qū)賽金牌,從卡內(nèi)基梅隆大學(xué)畢業(yè)后,直接加入了 Facebook。作為 Facebook Messenger Tech Lead,參與了 Facebook App、Facebook Messenger、Facebook Phone 等產(chǎn)品的研發(fā)工作。?他就是前 Facebook 工程師覃超,在 Facebook 面試過上百個(gè)技術(shù)人,熟知算法面試的各項(xiàng)考點(diǎn)。所以,他總結(jié)了適合大廠算法面試的 LeetCode 高效解題四步法,手把手帶你實(shí)戰(zhàn)演練,目的是交付給你一套拿來即用的解題方法,幫你從面試中脫穎而出。?負(fù)責(zé)任地說,只要你認(rèn)真跟下來,吃透這套算法面試通關(guān)方法論,距離離拿到心儀公司的 Offer 就不遠(yuǎn)了。?秒殺 專屬口令「happy2021」立省 ¥80
到手僅 ¥119,僅限?50?個(gè)名額
現(xiàn)在網(wǎng)上的算法資料很多,但內(nèi)容大多比較碎片化,經(jīng)常會(huì)出現(xiàn)知識(shí)點(diǎn)覆蓋不足或者研究性內(nèi)容過多的問題。?而在《算法面試 40 講》中,覃超梳理了一整套算法題切題的思路,帶你現(xiàn)場(chǎng)解題,借此梳理題目背后的考點(diǎn),并掌握高頻算法面試題的解題思路,有效提升算法面試通過率。?課程共計(jì) 62 講,現(xiàn)已經(jīng)全部更新完畢。發(fā)文前看了一眼,訂閱 32000 了,口碑也不錯(cuò),隨手截了一些用戶留言,你們就知道這課多好了。??
話不多說,看看目錄吧。?
申請(qǐng)了我粉絲的專屬優(yōu)惠:?秒殺 專屬口令「happy2021」立省 ¥80,到手僅¥119,僅限?50?個(gè)名額?掃碼免費(fèi)試讀
點(diǎn)擊「閱讀原文」立省 ¥80 拿下算法
?如果面試的人是你,會(huì)怎么回答?50 億條 URL,每個(gè) 64 字節(jié),加起來就是 320G,最簡(jiǎn)單不用動(dòng)腦筋的方法,就是把他們加載到內(nèi)存里直接比對(duì),但數(shù)據(jù)量太大,根本行不通。?進(jìn)一步分析,你可能會(huì)想到對(duì)文件做拆分,對(duì) URL 做排序,然后逐步做分析。但數(shù)據(jù)量這么大,具體怎么做呢?總不能說,我把 50 億條 URL,按從前到后的順序,拆分為 2000 個(gè)文件,然后挨個(gè)對(duì)比,多做幾次,結(jié)果就出來了。?雖然這樣能行,但也意味著你會(huì)被淘汰。因?yàn)檫@就是面試官要考察的關(guān)鍵點(diǎn)。對(duì)這樣的題目,面試官想看到的是你能否想到分治法、哈希,或布隆過濾器之類的知識(shí)點(diǎn)。換句話說,這其實(shí)是一道算法題,而不是程序題。?其實(shí),每家公司在面試時(shí)都會(huì)重點(diǎn)考察候選者的算法能力,甚至?xí)屇惝?dāng)場(chǎng)寫代碼。可以說,算法能力直接決定了一個(gè)程序員的好壞。用武俠小說做比喻,算法是“內(nèi)功”,而編程的各種框架,就猶如各種“招式”,內(nèi)功不扎實(shí),再多招式也只是花拳繡腿。?細(xì)數(shù)大廠的算法題,一般對(duì)應(yīng)都是 LeetCode 中級(jí)模式,想通過面試,就得花時(shí)間好好準(zhǔn)備。我知道,不少人都有過在 LeetCode 瘋狂刷題的經(jīng)歷,但一年下來,發(fā)現(xiàn)自己沒什么長(zhǎng)進(jìn),面試官隨便換個(gè)問法,就支支吾吾答不出來了。?其實(shí),刷題不能盲目,得找對(duì)方法。我認(rèn)識(shí)個(gè)人,在這方面可謂「專家」,他在同濟(jì)大學(xué)讀本科時(shí),就拿到了 ACM 亞洲分區(qū)賽金牌,從卡內(nèi)基梅隆大學(xué)畢業(yè)后,直接加入了 Facebook。作為 Facebook Messenger Tech Lead,參與了 Facebook App、Facebook Messenger、Facebook Phone 等產(chǎn)品的研發(fā)工作。?他就是前 Facebook 工程師覃超,在 Facebook 面試過上百個(gè)技術(shù)人,熟知算法面試的各項(xiàng)考點(diǎn)。所以,他總結(jié)了適合大廠算法面試的 LeetCode 高效解題四步法,手把手帶你實(shí)戰(zhàn)演練,目的是交付給你一套拿來即用的解題方法,幫你從面試中脫穎而出。?負(fù)責(zé)任地說,只要你認(rèn)真跟下來,吃透這套算法面試通關(guān)方法論,距離離拿到心儀公司的 Offer 就不遠(yuǎn)了。?秒殺 專屬口令「happy2021」立省 ¥80
到手僅 ¥119,僅限?50?個(gè)名額
現(xiàn)在網(wǎng)上的算法資料很多,但內(nèi)容大多比較碎片化,經(jīng)常會(huì)出現(xiàn)知識(shí)點(diǎn)覆蓋不足或者研究性內(nèi)容過多的問題。?而在《算法面試 40 講》中,覃超梳理了一整套算法題切題的思路,帶你現(xiàn)場(chǎng)解題,借此梳理題目背后的考點(diǎn),并掌握高頻算法面試題的解題思路,有效提升算法面試通過率。?課程共計(jì) 62 講,現(xiàn)已經(jīng)全部更新完畢。發(fā)文前看了一眼,訂閱 32000 了,口碑也不錯(cuò),隨手截了一些用戶留言,你們就知道這課多好了。??
話不多說,看看目錄吧。?
申請(qǐng)了我粉絲的專屬優(yōu)惠:?秒殺 專屬口令「happy2021」立省 ¥80,到手僅¥119,僅限?50?個(gè)名額?掃碼免費(fèi)試讀
點(diǎn)擊「閱讀原文」立省 ¥80 拿下算法