算法練習(xí) 100 天 精華總結(jié)

三步加星標(biāo)
增強(qiáng)算法能力,不是一朝一夕的事,需要持久的付出努力,同時(shí)也要經(jīng)常思考、反思和總結(jié),不斷去揣摩數(shù)據(jù)結(jié)構(gòu)和算法的巧妙。
過(guò)去幾個(gè)月,算法刷題日記里 600多位星友,一起走過(guò)100天刷題,今天做個(gè)簡(jiǎn)單總結(jié)。
刷題練習(xí)的數(shù)據(jù)結(jié)構(gòu),包括:
1. 一維結(jié)構(gòu):線性順序存儲(chǔ)的數(shù)組,線性亂序存儲(chǔ)的鏈表,按桶裝入數(shù)組的哈希結(jié)構(gòu),只在一頭出入的特殊數(shù)組棧(包括單調(diào)棧),隊(duì)列
2. 二維:非線性的二叉樹;具有優(yōu)先順序、根要么最大或最小的堆結(jié)構(gòu),也是特殊的一種二叉樹
3. 以及經(jīng)常用到的雙指針及特殊的快慢雙指針:

?
基于以上數(shù)據(jù)結(jié)構(gòu),經(jīng)常涉及到的算法有如下這些,其中:
1. 基礎(chǔ)思維部分最符合我們的思考習(xí)慣;
2. 遞歸思維常和數(shù)學(xué)歸納分析相關(guān);
3. 分治思維就是劃大區(qū)間為小區(qū)間,分別治理后,重新合并的思維;
4. 哈希比較好理解,O(1)找到某個(gè)鍵的對(duì)應(yīng)值;
5. 動(dòng)態(tài)規(guī)劃前100天并沒(méi)有重點(diǎn)訓(xùn)練,因?yàn)樗撬兴惴ㄖ凶钚枰?xùn)練的思維之一,狀態(tài)轉(zhuǎn)移方程并不是那么容易找到,但又是加速算法的常用技巧之一,AI訓(xùn)練模型的反向傳播算法,強(qiáng)化學(xué)習(xí)智能體在環(huán)境中的學(xué)習(xí)過(guò)程,都是動(dòng)態(tài)規(guī)劃思維的具體應(yīng)用;
6. 貪心求得最優(yōu)解的場(chǎng)景其實(shí)不太多,往往實(shí)際中用來(lái)求得近似解;
7. 位運(yùn)算有時(shí)解決問(wèn)題干凈利落;
8. 前綴和是一類特殊的結(jié)構(gòu),注意體會(huì)前綴和的解體技巧

