為什么是Leetcode
LeetCode作為一種資源,不得不說,是迄今為止用來改進面試式算法問題最有效的工具。 LeetCode收錄了許多互聯網公司的算法題目,被稱為刷題神器。它掃遍全球,囊括中外,成為大家面試算法工程師以及程序員相關工作必刷的?題庫。
英文版主頁?:
https://leetcode.com/
中文版主頁:
https://leetcode-cn.com/
如何正確打開Leetcode
這篇文章的目的不是教你如何擠進一家頂級互聯網科技公司,而是幫助你學習如何獲得算法解決問題的技能,而這些技能反過來又會幫助你得到你想要的工作。我們將從一些通用的技巧開始,這些技巧適用于你想做得更好的任何事情:
- 一致性是關鍵。你要盡可能提前開始,每天都這樣做。每天做一個小時比只在星期天做七個小時要好。
- 專注于積極的改進。這意味著,如果你沒有集中注意力,那么你可以停下來,稍后再回來。
- 記住,每個人都是不同的,沒有什么是放之四海而皆準的。找到適合自己的刷題節奏尤為關鍵。
一般刷題順序從最容易的到最難的排序。顯然你能做的最好的事情就是解決LeetCode上的每一個問題。如果你這樣做了,你就真的可以去了。但不幸的是,沒有人有無限的時間,所以我們要優化一下。從簡單到困難。如果你覺得問題對你來說太簡單了,你可以開始跳過這些問題。
雖然LeetCode是一個非常好的平臺,但并不是所有的問題質量都是一樣的。如果你打開一個問題,你可以看到有多少人贊成或反對一個問題。我一開始會遠離那些支持率高于2:1的問題,那些支持率高于4:1的問題通常質量都相當高。從更高級別的問題中學習要容易得多。
最終,你會發現一個太難的問題,你會陷入困境。這完全沒問題。事實上,放棄一些問題是完全可以的(甚至是有效的)。它可能需要一種你以前沒有見過的算法或數據結構,你沒有必要費力去重新發現一種算法或數據結構。這里有一些如何擺脫困境的建議。
首先,如果有已經針對這個問題的篇教學帖,就從那篇開始吧。它們往往是相當高質量的,通常包括編寫良好的代碼解決方案。接下來,打開問題的“討論”標簽,閱讀一些帖子。這些在質量上差別很大:有些人只是發布一個解決方案;其他的則非常詳細。您的里程可能會有所不同,但是如果您陷入困境,這也是一個有用的資源。最后,你可以將問題本身谷歌或者百度,通常其他人會在他們的個人博客或Github repo等第三方網站上發布解決方案。
相關資源
我們介紹一些比較好用的資源:
- 首先作為中文使用者,leetcode中文版主頁絕對是大家用的最多的網站
- 然后是知乎上面有很多?分享如何刷題的帖子:?https://www.zhihu.com/question/26580300
- 最后Github上有很多?優質的資源:https://github.com/pezy/LeetCodehttps://github.com/azl397985856/leetcode