刷 LeetCode 吃力正常嗎?

Python之禪發表於2018-11-28

作者:矽谷IT胖子

連結:https://www.zhihu.com/question/31092580/answer/439473636


第一,我覺得要找到適合自己的學習方法。我記憶能力強,理解和抽象能力弱,屬於頓悟型,所以就是靠速度快,類似的題(比如Graph類、DP類、Tree、LinkedList)來回拉鋸,步驟是:


  1. 直接看答案,然後理解解答者的思路(甚至理解題意到底想幹嘛),

  2. 然後自己想,拿具體例子實驗他的例子,理解為什麼work,怎麼work的,這段code的精髓在哪裡。然後自己寫,不能抄,按照自己理解的思路寫成自己的code,存起來。

  3. 重複1、2的過程,“刷”,因為不需要太多思考(個人弱項),並不累。重複幾次下來,就很熟練了。

  4.  然後不斷地實戰,在實戰中發現問題(比如沒有真懂,變體不會解決等),回來再練;

  5. 最後達到爭取能不看任何提示,給別人講清楚這道題,一般就會終身不忘了;


第二,我覺得毅力遠遠比方法重要。沒有或是不會方法,通過刷題是可以逐漸意識到自己的方法不對並且改進的;沒有毅力,靠巧勁不是很好用。當然,最好方法也講究一些,尤其是上了歲數的人。


我沒有精研LC,可以說什麼執行速度之類的我都沒有看,因為反正是看別人的答案,肯定不可能是很糟糕的解法。這種根本不精通,問題是一線公司面試中比如要求20分鐘做一道Medium bug free,哪有時間扯細節?所以,神速、直奔主題、寫code無bug是關鍵。以速度取勝。


最後,我LC並不強,跟大神比差太遠太遠了。但是我認為我的方法和努力是有一定成效的,因為我半路出家、懶笨、天資平平,尤其是抽象能力弱,按理說是不太適合這個行業的,但我依然找到了自己的出路,運氣成分也不小。


面試不是看運氣嗎?我認為很看;面Google、FB全碰到Medium原題並不稀奇,但是你至少能做好Medium才是根本。假設每次面試有5%的幸運概率,那麼每年面FLGUA一趟,連續面4年,就是20次機會。20次機會這5%幸運出現的概率是多少呢?我概率與統計不好,你們自己算吧。


所以說,幸運也總是眷顧那些肯刷題、肯去面試的人。放寬心態,在這行混,肯刷題,就是機會多多;不肯刷題,就是自己放棄了一片天地。


相關文章