最近業務比較繁忙,又補了上個Q遺留的自動化接口case等等瑣事,晚上用來系統學算法的時間比較少了。
另外,在steam又新買了個《地平線4》,剛玩也有點停不下來,哈哈。
面試
可是,最近也並非啥也沒幹。都說學以至用,以前看視頻看書瞭解了鏈表二叉樹這些,可是具體能幹啥、怎麼用,
仍是兩眼一抹黑。不過所幸獲得奇哥指點,分享給我另外一個關於算法學習的公衆號《labuladong》,這裏面有不少
算法實戰的要點,有興趣的能夠去搜索下。我跟着指導,以爲也得去刷刷題纔是正道,畢竟學這玩意就是爲了之後
面試用,仍是得實戰。算法
說到LeetCode,這又勾起了我曾經痛苦的回憶了,或許這也不僅僅是我一我的有這樣的經歷。
記得我第一次打開LeetCode想去作題,應該也是跟風吧,那會據說牛批的大佬都去那上面作題,感受應該挺厲害的樣子。
而後,不明因此的我也想去試試,結果打開題目,一點思路都沒有。數組
最後,好不容易碰到個那種循環遍歷能解決的問題,解決完後一腦門子汗。結果看題解的時候,發現本身的算法賊差勁,
別人用哈希解決的效率更高。這倒好,又揭開新的知識盲區了。數據結構
接下來,再繼續打開新題目,腦子都是一片空白,忍不住就想去看題解。題解最後看了就看了吧,理解起來還費半天勁,
最後的結果就是勸退了。框架
其實如今想一想,那種狀況下就去挑戰算法題,勸退那是惟一結果。並且,還會進一步增長你對於算法題的恐懼感。而這
一切的來源,就是本身的無知,以及學習方法不對。ide
路都不會走,就想跑了呀?學習
那如今的狀況確定是比以前要好了,儘管仍是小白,可是比起以前的本身仍是進步了的,至少如今再也不那麼恐懼LeetCode刷題了。視頻
爲何呢?blog
人的恐懼一般來源於對事物的未知。以前根本不瞭解數據結構與算法,作題天然無從下手。如今經過一步步的學習數據結構,知道了
其實這些東西沒有之前想象的那麼神祕,玩來玩去,仍是數據的增刪改查唄。接口
在上面提到的算法公衆號裏,我學習到了刷題都是有套路的,有解題框架,萬變不離其宗。筆者推薦從二叉樹的題目刷起,培養這種套路的
感知。拿二叉樹來講,基本上解題仍是那三種遍歷:前序、中序和後序。 拿到題目首先就是不慌,仔細審題,究竟是要我幹什麼?我怎麼
作能達到這樣的效果,最後再肯定選哪一種遍歷框架合適。
就這樣,穿插着作了些簡單的題目。畢竟仍是個小白,得從easy模式開啓,最主要的是培養好正確的解題思惟,完全消除對於LeetCode的
恐懼感。
後面的算法學習,我決定就這樣理論+刷題相結合着來。先將數據結構的基本知識掌握,再去解決一些相關的算法題,效果會好不少。好比,
那個刪除鏈表結點的題目,若是我不知道什麼是鏈表,可能還真琢磨怎麼像數組那樣刪掉這個結點呢。
關於看題解,我以爲可能會有那種強迫本身非得作出來以後才能看題解的人。其實我以爲不必這樣作,最起碼對於小白階段。
既然都是小白了,那作不出來也是很是正常的事情,這時候去看看題解,或許就可讓你茅塞頓開。這時候要去體會別人的解題思路,
以及對於此類問題的應用。那麼,下次再碰到相似問題的時候,咱基本上就能夠作出來了。
要不怎麼是叫刷題呢?只要是用心作題,我相信量變必定能夠產生質變。