我多篇頂會論文在手,面試AI算法崗時竟然還要刷算法題? | 元旦送書福利

2021-01-01     AI科技評論

原標題:我多篇頂會論文在手,面試AI算法崗時竟然還要刷算法題? | 元旦送書福利

作者| 耳洞打三金

今天是2021年的第一天,AI科技評論首先祝大家2021年萬事順利、身體安康、心想事成、論文多多、新的一年牛氣沖天( ఠൠఠ )ノ!!!

前些天我們編輯部有個例行活動:一起商討元旦福利要為大家送什麼書 。

為什麼要送書呢?

因為書是人類的...... 是人類的...... 書中自有...... 書中自有......

好吧,其實是因為想直接送大家V100顯卡,但是怕大家覺得太貴、心裡過意不去、不好意思接受

那為什麼說這是例行活

因為AI科技評論一直就在陸陸續續地為大家贈送書籍,就以今年下半年為例,AI科技評論在1024程式設計師節日曾為大家贈送了蜥蜴書:《機器學習實戰:基於Scikit-Learn、Keras和TensorFlow(原書第2版)》兩書,中秋節之際曾為大家贈送了周志華教授著作《集成學習:基礎與算法》(森林書)和賈揚清力薦《阿里雲天池大賽賽題解析——機器學習篇》一書,在其它時候AI科技評論又送書了楊強老師的《遷移學習》一書以及吳軍老師的《信息傳》一書。

那今天我們又要送給大家什麼書呢?

噢!這個不急,首先要從幾件小事說起......

小事一:

在今年AI科技評論採訪過的國內某TOP 2高校的一名AI研究生期間,他正在積極備戰秋招,而除了頂會論文和項目經歷之外,他最主要的準備都用在了刷算法題上面,其中以刷Leetcode Medium和 Hard為主,而去年三金我認識的另外一位 TOP 2隔壁的 TOP 2同學,十分優秀啊,多篇頂會在手,但是在準備谷歌研究院、達摩院等面試時同樣也在辛苦地刷算法題。

小事二:

在今年的NeurIPS 2020開會期間,三金我登錄NeurIPS的虛擬Poster聊天室之後,在裡面遇到了一位北美CS TOP 10名校的博士生。這個時間他在聊天室,是因為這三個小時是他的一作論文的Poster時間,他要為陸陸續續來到他的論文虛擬Poster之處的其它AI研究員介紹自己的論文以及問答交流。

而三金我顯然不是在問他論文相關的問題

,而是關心他的工作問題,他說他很忙,哦對了,他手上有像NeurIPS 這樣頂會的多篇論文,他也曾在Facebook AI研究院等大廠研究員做過挺長時間實習研究員,但是他面試依舊也要刷算法題,我沒有問他是不是也在Leetcode 上刷,因為我怕他會覺得我比較Low、怕他把算法導論等黑色大理石書直接甩在我的臉上。

小事三:哦這個事就是傳聞了,傳聞以XX跳動為首的網際網路大廠近年來在算法工程師的面試時,算法題考察的越來越難了,難到手寫紅黑樹都已經成為不了段子了。

難歸難,但是據流傳國內江湖上還是以Leetcode Hard為一個評判基準,而且有時是面試上來就做一到三道算法題,確實是這樣嗎?

那是否每個人面試都需要做算法題呢?

想必不是,Kai ming這樣的大神估計是不需要的,在ACM總決賽拿過牌子、Codeforces、Topcoder榜上有名的同學估計也是不需要的。

那三金我需要做算法題嗎?

不需要,但這不代表我啥都不會,簡單的動態規劃還是不在話下的

AI太內卷了啊,現在國內外的選手都太優秀了,學歷、頂會論文、項目、Coding能力都得要求 ,當去大廠面試的時候,Coding能力是很重要的考察標準,如果你沒有頂會論文,但是Coding能力很強,這種情況是有可能過的,如果你Coding能力很拉垮,哪怕有一兩篇頂會論文,那八成也是要掛掉。

當然這也要分研究崗和工程崗,有時具體情況要具體而論,比如對AI科學家這一級別一般不至於還要讓對方做幾道算法題,否則那就太掉價了。

總之,哪怕多篇頂會論文在手,找算法工作時大機率上還是手撕算法題的,因為企業要的還是工程師多一些,沒有Coding能力怎麼展開工程業務呢,算法工程師,算法工程師,首先你得是個工程師。

三金我口吐芬芳了這麼多,需要說明的一點是以上觀點僅僅代表三金我一人哈,不代表AI科技評論,如有任何不妥當之處,歡迎評論區來打三金臉

那麼今天到底要送什麼書就顯而易見了,它肯定是一本算法書,準確的說是教大家如何高效地刷算法題的書。

它就是本月份迅猛奪下京東全品類新書榜第一名、京東計算機圖書總榜第一名、

並且在兩網榜單上霸榜至今的、建議程式設計師人手一冊的、GitHub 68.8k star的硬核算法教程——《labuladong的算法小抄》!

上文說到大部分同學找算法工作都得刷算法題,且以在Leetcode平台為主,這是為什麼呢?

大概是因為力扣的算法題因被BAT、京東、美團、位元組跳動、滴滴、拼多多、微軟、亞馬遜、Google、Facebook等一線科技公司選作面試題從此名聲大噪的吧。

從程式設計師的角度來講,Leetcode這個平台對於在線刷題十分友好,社區討論也非常積極,每周參加一次的Leetcode周賽也是很多同學業餘的愛好。

不過很少有人能刷完力扣的上千道題,本「算法小抄」就把這些海量算法題分門別類匯總,提煉出各類題的套路和解題框架,幫助你快速掌握算法思維,以不變應萬變來應對網際網路公司的各種算法題!

都是白給的套路,誰能不愛!

再加上書中用喜聞樂見的語言來講述算法,還配上了幾百幅有趣的算法圖示及部分動畫演示。

這讓三金我這一這樣啥都不懂、啥都不會的同學都能快樂閱讀,快樂學習。

不禁感慨,這本書確實配得上這個排名!

準備算法題最高效的方法當然是直接刷題!

但是,刷題也是有技巧的,刷題平台上動輒幾千道題,難道你要全刷完嗎?正確刷題方式是——

邊刷邊歸納總結,抽象出每種題型的套路框架。

比如,刷一道算法題,解題思路有什麼可復用的地方,是否可以和之前做的某一道題聯繫起來?

再比如,都說動態規劃問題難,千變萬化,但這類問題本身是不是有一些特性,是不是能夠抽象出一套抽象的指導方法來做動態規劃問題?

在《labuladong 的算法小抄》中,已經為你全部總結好了這些核心框架,並且直接集中放到了開篇第一章,後續章節精選了八十道力扣算法題,手把手教你如何運用算法框架去解決實際算法問題。

本書專攻算法刷題,訓練算法思維,應對算法筆試。

本書作者付東來,labuladong的作者,江湖人稱Offer收割機,有著多年的刷題經驗,有著他的經驗加持,相信把這本書刷完,你也可以培養出框架思維!

舉例說明!!!

在《labuladong的算法小抄》「動態規劃解題套路框架」章節中,會講到簡單的湊零錢問題,暴力解法就是遍歷一棵 N 叉樹:

1defcoinChange(coins: List[int], amount: int):

2

3defdp(n):

4ifn == 0: return0

5ifn < 0: return-1

6

7res = float( 'INF')

8forcoin incoins:

9subproblem = dp(n - coin)

10# 子問題無解,跳過

11ifsubproblem == -1: continue

12res = min(res, 1+ subproblem)

13returnres ifres != float( 'INF') else-1

14

15returndp(amount)

這麼多代碼看不懂怎麼辦?直接提取框架,這樣就能看出核心思路了,這就是遍歷 N叉樹的框架:

1defdp(n):

2forcoin incoins:

3dp(n - coin)

其實很多動態規劃問題就是在遍歷一棵樹,你如果對樹的遍歷操作爛熟於心,那麼起碼知道怎麼把思路轉化成代碼,也知道如何提取別人解法的核心思路。

再看看回溯算法,在《labuladong的算法小抄》「 回溯算法解題套路框架」中會直接告訴你,回溯算法就是一個 N 叉樹的前序 + 後序遍歷問題,沒有例外。比如,排列組合問題、經典的回溯問題,主要代碼如下:

1voidbacktrack( int[] nums, LinkedList track ) {

2if(track.size == nums.length) {

3res. add( newLinkedList(track));

4return;

5}

6

7for( inti = 0; i < nums.length; i++) {

8if(track.contains(nums[i]))

9continue;

10track. add(nums[i]);

11// 進入下一層決策樹

12backtrack(nums, track);

13track.removeLast;

14}

15

16/* 提取 N叉樹遍歷框架 */

17voidbacktrack( int[] nums, LinkedList track ) {

18for( inti = 0; i < nums.length; i++) {

19backtrack(nums, track);

20}

N 叉樹的遍歷框架,找出來了吧。你說,樹這種結構重不重要?

綜上所述,對於畏懼算法或者刷題很多但依然感覺不得要領的朋友來說,可以先刷樹的相關題目,試著從框架看問題,而不要糾結於細節。

所謂糾結細節,就比如糾結 i 到底應該加到 n 還是加到 n - 1 ,這個數組的大小到底應該開成 n 還是 n + 1

從框架看問題,就是像我們這樣基於框架進行抽取和擴展,既可以在看別人解法時快速理解核心邏輯,也有助於我們找到自己寫解法時的思路方向。

當然,如果細節出錯,你將得不到正確的答案,但是只要有框架,再錯也錯不到哪去,因為你的方向是對的。但是,你要是心中沒有框架,那麼根本無法解題,給你答案,也不能意識到這就是樹的遍歷問題。

框架思維是很重要的,有時候按照流程寫出解法,說實話我自己都不知道為啥是對的,反正它就是對了……

這就是框架的力量,能夠保證你在思路不那麼清晰的時候,依然寫出正確的程序。

當然最重要的還是為眾多大佬節省刷題時間提高刷題效率,畢竟您也不想因為準備面試而天天一道一道的刷算法題對吧?

[贈書福利]

AI科技評論本次聯合【博文視點】為大家帶來15本「 《labuladong 的算法小抄》」正版新書。

在本文留言區留言,歡迎大家暢所欲言,談一談你刷算法的故事,或你對2020的總結或者是對2021年的規劃和心愿,甚至可以是新的一年對AI科技評論的建議和期待,有哪些喜歡看的報道,還希望看到什麼樣的報道?

AI 科技評論將會在留言區選出 15名讀者,每人送出《labuladong 的算法小抄》一本。

活動規則:

2. 留言內容會有篩選,例如「選我上去」等內容將不會被篩選,亦不會中獎。

3. 本活動時間為2021年1月1日 - 2020年1月7日(23:00),活動推送內僅允許中獎一次。

文章來源: https://twgreatdaily.com/zh-tw/ck5NwnYB9j7PxaI7x7GX.html