2022 年周賽題目總結(jié)(下篇)
由于B站專欄不支持表格,請到下面的力扣鏈接上查看。
https://leetcode.cn/circle/discuss/WR1MJP/
我把周賽題目分為以下七類:
模擬
技巧
動態(tài)規(guī)劃
數(shù)據(jù)結(jié)構(gòu)
圖論
數(shù)學(xué)
思維題
1. 模擬
模擬指按照題目要求實現(xiàn)相應(yīng)代碼,一般暴力即可通過。
某些模擬題會有點復(fù)雜,這也能很好地鍛煉實現(xiàn)代碼的能力。
注:常見于周賽第一題(約占?90%)、第二題(約占?40%)和第三題(約占?19%)。
2. 技巧
技巧指一些比較套路的算法,包括雙指針、滑動窗口、二分(主要指二分答案)、前綴和、差分、前后綴分解、位運算、二進制枚舉、貢獻法等。這些技巧相對容易掌握,想在周賽上分的同學(xué)可以優(yōu)先學(xué)習(xí)這些內(nèi)容。
順帶一提,我一般把窗口大小不固定的叫做雙指針,窗口大小固定的叫做滑動窗口。
注:常見于周賽第二題(約占?18%)和第三題(約占?27%)。
3. 動態(tài)規(guī)劃
學(xué)習(xí)動態(tài)規(guī)劃是否有捷徑?我的看法是沒有捷徑,多做題就是最好的訓(xùn)練方法。對于不會做的題目,要反復(fù)訓(xùn)練到一分鐘內(nèi)能想出狀態(tài)轉(zhuǎn)移方程為止。
如果你很難想出狀態(tài)轉(zhuǎn)移方程,以及遞推的順序,可以先從記憶化搜索開始思考,然后轉(zhuǎn)換到遞推上。
記憶化搜索像是自動擋,無需思考遞推順序,邊界條件也容易確認;而遞推像是手動擋,需要仔細確認遞推的順序以及初始值。但記憶化搜索并不是萬能的,某些題目遞推的寫法可以結(jié)合數(shù)據(jù)結(jié)構(gòu)等來優(yōu)化時間復(fù)雜度。
注:常見于周賽第四題(約占?28%),偶見于第三題(約占?9%)。
4. 數(shù)據(jù)結(jié)構(gòu)
包括堆(優(yōu)先隊列)、單調(diào)棧、單調(diào)隊列、字典樹、并查集、樹狀數(shù)組、線段樹等。
學(xué)習(xí)這些只是開始,能否靈活運用才是關(guān)鍵。
注:常見于周賽第四題(約占?21%)。
5. 圖論
周賽中的圖論題目比較少,除了下面選的 DFS、BFS、拓撲排序、基環(huán)樹、二分圖判定等,還有最短路、DFS 時間戳等(這些可以在上半年的周賽題目中學(xué)到)。
注:偶見于周賽第三題(約占?10%)和第四題(約占?13%)。
6. 數(shù)學(xué)
主要考察的是數(shù)論(質(zhì)數(shù)、GCD、LCM、逆元等)和組合數(shù)學(xué)。
注:占比很少,不足?10%。
7. 思維題
包含貪心、腦筋急轉(zhuǎn)彎等,挑選一些比較有趣的題目。
注:常見于周賽第二題(約占?21%)、第三題(約占?26%)和第四題(約占 17%)。