leetcode怎么用时间刷_刷完700多题后的首次总结:LeetCode应该怎么刷?
推薦觀看:
java技術(shù)進(jìn)階:膜拜!字節(jié)大神總結(jié)的666頁(yè)大師級(jí)算法寶典,分分鐘團(tuán)滅LeetCode?zhuanlan.zhihu.com2020最新馬士兵老師聯(lián)手左程云老師丨數(shù)據(jù)結(jié)構(gòu)與算法丨面試BATJ必備?www.bilibili.com我是大二的時(shí)候開(kāi)始接觸LeetCode的,那時(shí)候lc只有400題,我本來(lái)打算每天做一個(gè)題,但是由于當(dāng)時(shí)覺(jué)得題目太難沒(méi)堅(jiān)持下去。在大四考研后和研一研二的兩年左右的時(shí)間,我刷了700多道題。那么我是怎么做到的呢?
我打算分為兩個(gè)部分來(lái)講:入門(mén)篇、提高篇。
一、入門(mén)篇
剛開(kāi)刷lc時(shí)遇到二叉樹(shù)翻轉(zhuǎn)題目,想了一天也沒(méi)明白,當(dāng)時(shí)無(wú)比痛苦。因?yàn)槲业姆椒ú粚?duì),我總想著自己在腦子里面想明白再寫(xiě),還想著用本地IDE寫(xiě)個(gè)二叉樹(shù)結(jié)構(gòu)進(jìn)行debug,現(xiàn)在看來(lái)都是走了彎路。
對(duì)于新人而言,不應(yīng)該自己硬扣一個(gè)題目,如果想了一會(huì)沒(méi)有任何思路,就應(yīng)該果斷看別人怎么寫(xiě)的。在理解了別人的做法之后,再憑理解和記憶在LeetCode的代碼框里敲一遍。
就像每個(gè)課本都會(huì)有例題一樣,只學(xué)純知識(shí)大家都不知道怎么運(yùn)用的。而我們?cè)谒eetCode的時(shí)候并沒(méi)有例題可以給我們學(xué)習(xí),因此新手會(huì)感到痛苦。新手不要害怕看別人的解法和答案,度過(guò)痛苦時(shí)期,后面就會(huì)越刷越快。
新手應(yīng)該注重三個(gè)方面:基礎(chǔ)知識(shí)、跟別人學(xué)習(xí)、做好筆記 。
1. 基礎(chǔ)知識(shí)
需要掌握常用的數(shù)據(jù)結(jié)構(gòu)和算法的思想和適用場(chǎng)景。
我推薦《算法第4版》,看這個(gè)書(shū)的時(shí)候不用全部看,只看重點(diǎn),比如前面的Java知識(shí)不用看,數(shù)學(xué)推導(dǎo)不用看。再推薦一本侯捷的《STL源碼剖析》,這本書(shū)對(duì)理解C++ STL有重大幫助,看了之后絕對(duì)會(huì)對(duì)數(shù)據(jù)結(jié)構(gòu)和算法有更深的理解,我看完這本書(shū)之后感覺(jué)相見(jiàn)恨晚啊。
2. 跟別人學(xué)習(xí)
向別人學(xué)習(xí)是非常必要的。又分為兩種:
1)看別人的題解
主要看別人在解決這個(gè)題目的思路是什么。
推薦的題解作者有:
花花醬:基本每個(gè)題都有博客和視頻,強(qiáng)烈推薦看他的視頻。
負(fù)雪明燭:把重點(diǎn)放在分析上,每篇質(zhì)量都很高。
Grandyang:通過(guò)舉例子來(lái)讓你明白該怎么做。
李威威,甜姨,柳婼,書(shū)影博客。
題解區(qū)的答案:英文版看lee215,中文版看liweiwei和sweetie,以及官方解答。
如果你會(huì)做這個(gè)題目,我也覺(jué)得應(yīng)該看下別人怎么解決的,思路是不是一樣。
比如想看負(fù)雪明燭的two sum題解,那么搜索方式就是加上fuxuemingzhu在后面搜:
2)看別人的總結(jié)
這部分包括算法講解、套路整理、刷題模板等。
負(fù)雪明燭說(shuō):”做題 = 想法 + 模板“,想法需要通過(guò)看別人的解答以及講解獲得,模板就是做題的套路和模板,既可以自己總結(jié),也可以看別人總結(jié)好的。
首先是labuladong的算法小抄,在Github上兩周就獲得了 10k star!!!強(qiáng)烈推薦,特別是動(dòng)態(tài)規(guī)劃不懂的,可以看。
然后有負(fù)雪明燭的【LeetCode】代碼模板,刷題必會(huì),基本總結(jié)了所有的做題模板。
3. 做好筆記
在很多年前我就開(kāi)始把每個(gè)做過(guò)的題目記錄在CSDN上,現(xiàn)在我的博客瀏覽量已經(jīng)將近100萬(wàn)了。
我的做法是:任何題,無(wú)論難度,我都進(jìn)行記錄題目、想法、代碼。雖然經(jīng)常寫(xiě)博客的時(shí)間比寫(xiě)題的時(shí)間還多,但是把自己的想法講解一遍才是真的懂了,更方便了自己之后看、以及大家交流。
當(dāng)然,除了寫(xiě)題解,還要整理做題的方法、套路、模板,這些會(huì)隨著你的經(jīng)驗(yàn)慢慢形成的。
在B站有個(gè)小姐姐演示了如何用iPad做筆記,也講了小白如何上手LeetCode,值得一看。
4. 交流和監(jiān)督
刷題最大的障礙是自己。特別是新手,很可能由于剛接觸LeetCode感覺(jué)太難就沒(méi)有毅力堅(jiān)持下去,導(dǎo)致半途而廢。而且,刷題更重要的是堅(jiān)持,做題的感覺(jué)都需要手感進(jìn)行保持的。
所以,如果能有個(gè)組織交流和監(jiān)督就好了。
二、提高篇
如果你已經(jīng)過(guò)了小白的階段,那么應(yīng)該做些提高項(xiàng)目。
1. 周賽
所謂周賽,就是每周日上午,LeetCode組織的一場(chǎng)比賽,總共4道題,一般是Easy一道,Medium兩道,Hard一道。中英文網(wǎng)站同時(shí)開(kāi)始,題目相同。
做周賽的目的是檢驗(yàn)我們的學(xué)習(xí)成果,畢竟這些題目都是新的,就像考試一樣。
不要擔(dān)心自己做不出來(lái),只要盡力而為就好了,我一般的目標(biāo)是解決前三道,第4道Hard做不出來(lái)也沒(méi)有心理負(fù)擔(dān)。
參加完比賽之后,看下別人的解答,因?yàn)槎际亲约嚎嗨稼は脒^(guò)的方法,因此可以提高地特別快。
我最好的周賽成績(jī)是全球28名,當(dāng)時(shí)非常興奮,開(kāi)心了一整天。
2. 總結(jié)與分享
這一點(diǎn)和入門(mén)篇的做好筆記 略有重復(fù),但是仍然要說(shuō),因?yàn)槿绻皇菃渭兊挠涗浌P記和寫(xiě)每個(gè)題目的記錄是不夠的。
我在寫(xiě)博客的時(shí)候就落入了只記錄不總結(jié)的誤區(qū)中,單個(gè)題目的解決方案只會(huì)有正在做這個(gè)題的人看,但是你的提煉總結(jié)可以讓你和大家都獲得成長(zhǎng),這也是我寫(xiě)這個(gè)回答的原因。
上文中提到的labuladong的算法小抄就是個(gè)很好的總結(jié)與分享例子。
最后,希望大家都能夠通過(guò)刷LeetCode獲得成長(zhǎng),拿到自己滿(mǎn)意的Offer。
期待你的點(diǎn)贊、關(guān)注、分享。
總結(jié)
以上是生活随笔為你收集整理的leetcode怎么用时间刷_刷完700多题后的首次总结:LeetCode应该怎么刷?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 原神砂流之庭前面的机关怎么解密
- 下一篇: 北京环球影城优速通是什么意思