<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          吳忠強:刷LeetCode的正確姿勢!

          共 2504字,需瀏覽 6分鐘

           ·

          2021-05-20 02:31

          ↑↑↑關注后"星標"Datawhale
          每日干貨 & 每月組隊學習,不錯過
           Datawhale干貨 
          作者:吳忠強,東北大學,Datawhale成員

          寫在前面

          最近面試中做算法題,受了打擊,和我之前準備的很不一樣。這篇文章通過筆試實戰(zhàn)經驗復盤我在刷LeetCode的一些誤區(qū)和今后對策,供大家參考備戰(zhàn)秋招,下面開始 ??

          刷LeetCode姿勢很重要

          刷題不能以數量來定質量。一般我們衡量刷Leetcode,都喜歡問刷多少道題目了?并且覺得刷的題目數量和能力成正比。

          其實并不是,至少對于我不是。之前聽好多大佬說200道LeetCode夠用了,在第一次筆試之前,我LeetCode就刷到了200+,并且都是重溫和復刷,還挺自信的。結果第一次阿里筆試,就瞬間把我積累的所有自信打擊到0,很遺憾,非常慘。

          仔細反思原因,這次的失敗有很多方面,還不僅僅是刷題上的誤區(qū),總結的經驗如下:

          1. 目標誤區(qū)

          以數量定能力不可取,不是數量夠多就行,要注重刷題的質量和轉化問題的能力。在刷題中,我們要注重鍛煉轉化問題的能力以及應對各種題型的反應速度(代碼編寫能力)。

          舉幾個判斷的例子:是否能不加思考,就把二分、快速排序、堆排序、DFS和BFS、樹的各種遍歷、回溯等模板框架默寫出來?見到一個新題目,能不能立即反應出考的是什么算法?能不能立即想到相應算法中有哪些經典解決思路?這才是我們需要在刷題的過程中練習的。大佬說的200道題目,應該是高質量、中高難度、能概括全貌、又練習了很多遍的題目。

          不要盲目自信、貪多,用戰(zhàn)術勤奮去掩蓋戰(zhàn)略懶惰,逼著自己做難題,逼著自己多思考,多總結,觸類旁通,同時珍惜那種能夠舉一反三的題目。

          2. 策略誤區(qū)

          不知道大家有沒有遇見過?見到很難的題目,總是不自覺的就去背代碼,而不愿意思考具體過程,半懂不懂的狀態(tài)。尤其是二刷三刷某個題時,我經常是:先記代碼,然后直接敲,遇到bug了,往往也不喜歡再思考,而是直接看看之前刷過的,“哦,原來這里出問題了”,恍然大悟, 提交通過,二刷完成。

          呵呵, 現在我再回憶這個過程,自己是多么的天真,這樣復刷,刷多少遍也沒用,反而浪費了時間和好題目。因為這個過程中,我們明明已經知道了對這個題目沒有掌握(遇到bug), 這時候,應該逼著自己重新考慮題目,如果真的考慮不明白了,再去看代碼,之后再想。要珍惜復刷的時間和機會

          3. 思考誤區(qū)

          這個是針對題目本身來說的,刷題的時候,一定要真正弄懂題目,看后面題解的時候,也不要只看一種思路,如果有好幾種好的思路也建議多看看,雖然真正面試或者筆試的時候,能寫出一種就不錯,但是多個思路有助于幫助我們去更好的理解題目本身。

          沒有思考轉換的過程,刷題再好,面試也跪。因為公司的筆試題是不會有原題的,全是生活中的具體場景,需要我們自己去轉換,如果刷題的時候沒有真正理解題目,那僅僅是會了這樣的一道題目而已,換成場景型,不一定轉換出來。最簡單的例子,就是斐波那契數列和爬樓梯, 可能斐波那契數列拿捏得死死的,一到爬樓梯不會爬了。

          4. 環(huán)境誤區(qū)

          面試做筆試題的時候是ACM模式,也就是純白板編程,自己寫輸入輸出。這個是和平時LeetCode上的刷題有很大區(qū)別的。所以阿里那次筆試,我也吃了這個虧,不了解實際環(huán)境,一上來白板編程就懵逼了。其實一個小時兩道題目,真正思考題目的時間很少,大部分時間都在熟悉編程環(huán)境,輸入接收不好,那是真難受哇。所以筆試之前,一定提前熟悉環(huán)境,牛客上有真實的ACM編程模式,盡量去練練,不能一昧的只刷LeetCode。

          另外,用IDE很重要,如果允許用,那盡量用。我經歷了三次筆試,最后一次才悟到這個有多么重要。python的話,就建議pycharm,非常好使,更重要的是,有代碼保存功能。我第三次美團筆試, 中途編程我的校園網掛了,導致刷新之后,我寫好的代碼全都沒了,頂著重壓又重寫的代碼,欲哭無淚,心態(tài)差點崩。

          5. 時間控制誤區(qū)

          平時我在刷LeetCode時,是不太注重時間的,但是發(fā)現,這個是個壞習慣。真實筆試是計時的,就會出現即使這個題目我遇見過,知道是什么框架什么算法解,但寫代碼就是寫不出來。反思原因,第一個是對于算法框架本身掌握的不夠熟練, 第二個是平時并沒有養(yǎng)成好的時間掌控習慣,所以在筆試的時候,大腦處在了一個偷懶的狀態(tài),不想思考和提煉。所以以后刷題,一定要計時刷題,中等以上難度,盡量40分鐘以內, 簡單題目20分鐘以內。LeetCode上有個面試模擬,可以打開它,感受一下時間的流逝,這樣會逼迫著大腦保持活躍和思考的狀態(tài)。、

          6. 真實模擬誤區(qū)

          這個也是我參加完第一次筆試悟到的,就是我們只悠哉悠哉的佛系刷題根本不行,得找機會來還原一下真實筆試的場景,感受一下刺激才行。否則,是真的沒法戰(zhàn)勝筆試的。真實情景模擬非常重要,這個一個是可以多參加筆試,不用怕打擊的,打擊時間長了就習慣了,并且真的發(fā)現,參加次數多了之后,恐懼會慢慢減少,雖然我目前只經歷了三次,但我感覺到我現在并不會太慌了,尤其是做美團這次,斷網之后我代碼全部消失,這要是放到第一次的時候,我覺得我應該立馬放棄走人,可是我當時異常冷靜,愣是緩了緩,又重新寫了一遍,當然最后也是AC了一點,可是心態(tài)在逐漸變好。

          一定要讓自己多把握一下真實模擬的機會,多參加筆試是最好的策略,不過這個畢竟有限,可不要放到秋招再去體驗,那時候成本就高了。而我發(fā)現LeetCode的周賽,牛客上的模擬也是一個非常好的機會,可以去練習。

          總結

          由于目前參加的筆試體驗有限,所以只發(fā)現了我刷題過程中這幾個誤區(qū),也慶幸這是在找實習時發(fā)現的,如果是秋招,成本可就不一樣了。

          總結起來就是LeetCode還是多刷,但不要盲目,要多思考,把握時間,多總結反思,常復習,最后量變推質變吧

          干貨總結,三連
          瀏覽 50
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲av资源 | 青青无码免费播放网址 | 青春草在线观看 | 久久久三级电影 | 大鸡吧网站在现看 |