Leetcode 題目的正確打開方式

從2018年進行Leetcode的題目講解以來,發現大家反饋的主要問題有以下幾種:

  1. 被題目數量嚇到:目前題庫中的題目數量快1000了,每天做5個題目也得200天才能做完。
  2. 做了白做: 花了很大功夫做完的題目,沒幾天就忘光了
  3. 最優解不好理解:提交的算法都是墊底的,看了別人的算法又理解不深刻

針對這些問題,我也進行了反思,最後發現是我去,恐怕是題目的打開方式錯了。大多數朋友在進行算法練習的時候都是這樣做題的:

這種做題方式很大程度上造成了“記不住”和“做了白做”的問題,原因是沒有形成某一類問題思維體系,下次遇到同類問題,又重頭來過。

那根據類別做題看起來是個好選擇,一些朋友是以這個順序做的:

問題是這種模式下你會發現前幾個類別的題目數量非常多,做到後面幾乎是有種想吐的感覺,沒有新鮮感,很多朋友甚至沒法堅持做完一個類別。

所以,我覺得,正確的做題順序應該是由類別順序的從下到上,也就是逆類別做題:


不信你看最下面的類別有多少道題目:


這種做題方式,可以讓你很快搞定一些類別,並且有成就感和新鮮感。網上很多人建議快速刷題,就是先直接看答案然後再n刷。對於這種方式我並不贊同,除了急着找工作的朋友,我覺得練習算法的目的是爲了進行思維訓練從而更好的解決我們實際應用中遇到問題。所以,不管如何,拿到題目首先一定要嘗試自己去解答,即使沒有能成功提交,但是再看別人的算法時才能發現思路的差異,也纔可以有更深入的理解。

最後,不少朋友說,嘗試自己求解時一不小心幾個鐘頭就過去了。我的建議是設立Deadline,比如半個小時還沒有能解題那麼就去看別人的代碼,這樣來達到效率和理解的平衡。

從今年(2019)開始,我會按照類別逆序開始更新,並且對某一類別的題目進行思路總結。本人水平有限,智力不高,但想和大家一同進步,不當之處多多包涵。


源碼地址:
https://github.com/jediL/LeetCodeByPython

其它題目:[leetcode題目答案講解彙總(Python版 持續更新)]
(https://www.jianshu.com/p/60b5241ca28e)

ps:如果您有好的建議,歡迎交流 :-D,
也歡迎訪問我的個人博客 苔原帶 (www.tundrazone.com)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章