學(xué)習(xí)算法繞不開(kāi)的一個(gè)網(wǎng)站應(yīng)該就是LeetCode了,在刷力扣之前,是查過(guò)網(wǎng)上一些牛人的刷題心得的,大致總結(jié)下應(yīng)該會(huì)有這幾種:
1、上來(lái)直接順著題號(hào)開(kāi)刷;
2、查詢(xún)熱點(diǎn)TOP題型開(kāi)刷;
3、有牛人總結(jié)題號(hào)開(kāi)刷;
4、按照算法和數(shù)據(jù)結(jié)構(gòu)去刷對(duì)應(yīng)題型;
柿子采取的是第四種,根據(jù)目前算法和數(shù)據(jù)結(jié)構(gòu)來(lái)刷對(duì)應(yīng)的題型,刷過(guò)一種之后進(jìn)行總結(jié)歸納,整理出該種算法的優(yōu)劣模板,最好最好能把解題模板整理一下。
打開(kāi) LeetCode 網(wǎng)站,如果我們按照題目類(lèi)型數(shù)量分類(lèi),最多的幾個(gè)題型有數(shù)組、動(dòng)態(tài)規(guī)劃、 數(shù)學(xué)、字符串、樹(shù)、哈希表、深度優(yōu)先搜索、二分查找、貪心算法、廣度優(yōu)先搜索、雙指針等等。 本書(shū)將包括上述題型以及網(wǎng)站上絕大多數(shù)流行的題型,并且按照難易程度和類(lèi)型進(jìn)行分類(lèi)。

第一個(gè)大分類(lèi)是算法。主要是針對(duì)常見(jiàn)算法題型進(jìn)行總結(jié);
第二大類(lèi)是數(shù)學(xué)相關(guān)題型,包括偏向純數(shù)學(xué)的數(shù)學(xué)問(wèn)題,和偏向計(jì)算機(jī)知識(shí)的位運(yùn)算問(wèn)題。這類(lèi)問(wèn)題在實(shí)際工作中并不常用,建議可以?xún)?yōu)先把精力放在其它大類(lèi);
第三個(gè)是最最重要的數(shù)據(jù)結(jié)構(gòu),包含的常見(jiàn)數(shù)據(jù)結(jié)構(gòu)、字符串處理、鏈表、樹(shù)和 圖。其中,鏈表、樹(shù)、和圖都是用指針表示的數(shù)據(jù)結(jié)構(gòu),且前者是后者的子集。最后我們也將介 紹一些更加復(fù)雜的數(shù)據(jù)結(jié)構(gòu),比如經(jīng)典的并查集和 LRU。
下面很長(zhǎng)一段時(shí)間內(nèi)會(huì)根據(jù)上面腦圖進(jìn)行題型分析和算法總結(jié),一步一個(gè)腳印的慢慢來(lái);