刷題順序
核心學(xué)習(xí)建議(非常重要!)
- 理解優(yōu)先于死記:不要死記硬背代碼。理解每一行代碼為什么這樣寫(xiě),算法的核心思想是什么。
- 調(diào)試是好朋友:學(xué)會(huì)使用
printf進(jìn)行調(diào)試,打印關(guān)鍵變量的值,跟蹤程序執(zhí)行流程。這是C語(yǔ)言程序員最重要的基本功之一。 - 注重基礎(chǔ)語(yǔ)法:在簡(jiǎn)單題中鞏固
數(shù)組、循環(huán)、條件判斷、函數(shù)等基本語(yǔ)法。 - 畫(huà)圖分析:對(duì)于復(fù)雜一點(diǎn)的算法,拿紙筆畫(huà)一畫(huà)執(zhí)行過(guò)程,思路會(huì)清晰很多。
- 堅(jiān)持與復(fù)盤(pán):每天堅(jiān)持做1-2題,勝過(guò)周末一天做10題。定期回顧做錯(cuò)的題目。
第一階段:入門基礎(chǔ)(建立信心,熟悉語(yǔ)法)
這個(gè)階段的目標(biāo)是熟悉力扣的做題方式,并用C語(yǔ)言實(shí)現(xiàn)最基本的邏輯。題目幾乎都不需要復(fù)雜算法。
| 題號(hào) | 名稱 | 考察點(diǎn) | 難度 | 備注 |
|---|---|---|---|---|
| LCP 01 | 猜數(shù)字 | 數(shù)組遍歷、比較 | ?? 簡(jiǎn)單 | 完美的開(kāi)始 |
| 劍指 Offer 05 | 替換空格 | 字符串遍歷 | ?? 簡(jiǎn)單 | 學(xué)習(xí)處理字符串 |
| 1470 | 重新排列數(shù)組 | 數(shù)組下標(biāo)操作 | ?? 簡(jiǎn)單 | 很好的數(shù)組練習(xí) |
| 1480 | 一維數(shù)組的動(dòng)態(tài)和 | 數(shù)組、循環(huán) | ?? 簡(jiǎn)單 | 前綴和思想的雛形 |
| 1431 | 擁有最多糖果的孩子 | 數(shù)組遍歷、找最大值 | ?? 簡(jiǎn)單 | |
| 1512 | 好數(shù)對(duì)的數(shù)目 | 雙重循環(huán) | ?? 簡(jiǎn)單 | 經(jīng)典的雙重for循環(huán) |
| 1672 | 最富有客戶的資產(chǎn)總量 | 二維數(shù)組、循環(huán)嵌套 | ?? 簡(jiǎn)單 | 學(xué)習(xí)處理二維數(shù)組 |
| 771 | 寶石與石頭 | 字符串、哈希集合思想 | ?? 簡(jiǎn)單 | 可以嘗試用int數(shù)組模擬哈希表 |
| 1342 | 將數(shù)字變成 0 的操作次數(shù) | 循環(huán)、位運(yùn)算(可選) | ?? 簡(jiǎn)單 | 學(xué)習(xí)循環(huán)和條件判斷 |
第二階段:核心數(shù)據(jù)結(jié)構(gòu)(承上啟下)
開(kāi)始接觸最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)和算法思想。鏈表是C語(yǔ)言的重點(diǎn)和難點(diǎn),務(wù)必多花時(shí)間理解指針和內(nèi)存管理。
| 題號(hào) | 名稱 | 考察點(diǎn) | 難度 | 備注 |
|---|---|---|---|---|
| 劍指 Offer 06 | 從尾到頭打印鏈表 | 鏈表、遞歸/棧 | ?? 簡(jiǎn)單 | 學(xué)習(xí)鏈表遍歷,可嘗試遞歸 |
| 206 | 反轉(zhuǎn)鏈表 | 鏈表、指針操作 | ?? 簡(jiǎn)單 | 極其重要!必刷! |
| 21 | 合并兩個(gè)有序鏈表 | 鏈表、指針操作 | ?? 簡(jiǎn)單 | 經(jīng)典題,理解“啞節(jié)點(diǎn)” |
| 83 | 刪除排序鏈表中的重復(fù)元素 | 鏈表遍歷、刪除節(jié)點(diǎn) | ?? 簡(jiǎn)單 | 鞏固鏈表操作 |
| 20 | 有效的括號(hào) | 棧 | ?? 簡(jiǎn)單 | 經(jīng)典棧應(yīng)用,可用數(shù)組模擬棧 |
| 232 | 用棧實(shí)現(xiàn)隊(duì)列 | 棧、隊(duì)列 | ?? 中等 | 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的相互實(shí)現(xiàn) |
| 144 | 二叉樹(shù)的前序遍歷 | 二叉樹(shù)、遞歸 | ?? 簡(jiǎn)單 | 樹(shù)結(jié)構(gòu)的入門,理解遞歸 |
| 104 | 二叉樹(shù)的最大深度 | 二叉樹(shù)、遞歸/DFS | ?? 簡(jiǎn)單 | “分治”思想的入門 |
| 226 | 翻轉(zhuǎn)二叉樹(shù) | 二叉樹(shù)、遞歸 | ?? 簡(jiǎn)單 | 經(jīng)典遞歸問(wèn)題 |
第三階段:基礎(chǔ)算法思想(挑戰(zhàn)升級(jí))
學(xué)習(xí)最基礎(chǔ)的算法思想,如二分查找、雙指針、簡(jiǎn)單動(dòng)態(tài)規(guī)劃。這些是解決更復(fù)雜問(wèn)題的基石。
| 題號(hào) | 名稱 | 考察點(diǎn) | 難度 | 備注 |
|---|---|---|---|---|
| 704 | 二分查找 | 二分算法 | ?? 簡(jiǎn)單 | 算法基石,理解循環(huán)不變量 |
| 35 | 搜索插入位置 | 二分查找的變種 | ?? 簡(jiǎn)單 | 鞏固二分 |
| 278 | 第一個(gè)錯(cuò)誤的版本 | 二分查找的變種 | ?? 簡(jiǎn)單 | 鞏固二分 |
| 283 | 移動(dòng)零 | 雙指針 | ?? 簡(jiǎn)單 | 經(jīng)典雙指針,原地操作 |
| 977 | 有序數(shù)組的平方 | 雙指針 | ?? 簡(jiǎn)單 | 雙指針的巧妙應(yīng)用 |
| 70 | 爬樓梯 | 動(dòng)態(tài)規(guī)劃 | ?? 簡(jiǎn)單 | DP入門第一題,理解狀態(tài)轉(zhuǎn)移 |
| 53 | 最大子數(shù)組和 | 動(dòng)態(tài)規(guī)劃/貪心 | ?? 中等 | 非常重要且經(jīng)典 |
| 121 | 買賣股票的最佳時(shí)機(jī) | 動(dòng)態(tài)規(guī)劃/貪心 | ?? 簡(jiǎn)單 | 經(jīng)典問(wèn)題 |
| 118 | 楊輝三角 | 二維數(shù)組、動(dòng)態(tài)規(guī)劃思想 | ?? 簡(jiǎn)單 | 找規(guī)律 |
第四階段:進(jìn)階與鞏固(綜合運(yùn)用)
嘗試一些標(biāo)簽為“中等”的題目,它們通常需要組合運(yùn)用多種知識(shí)。
| 題號(hào) | 名稱 | 考察點(diǎn) | 難度 |
|---|---|---|---|
| 3 | 無(wú)重復(fù)字符的最長(zhǎng)子串 | 滑動(dòng)窗口、哈希表 | ?? 中等 |
| 46 | 全排列 | 回溯算法 | ?? 中等 |
| 102 | 二叉樹(shù)的層序遍歷 | 二叉樹(shù)、BFS、隊(duì)列 | ?? 中等 |
| 94 | 二叉樹(shù)的中序遍歷 | 二叉樹(shù)、遞歸/迭代 | ?? 簡(jiǎn)單 |
| 19 | 刪除鏈表的倒數(shù)第 N 個(gè)結(jié)點(diǎn) | 鏈表、雙指針(快慢指針) | ?? 中等 |
| 141 | 環(huán)形鏈表 | 鏈表、雙指針(快慢指針) | ?? 簡(jiǎn)單 |
如何刷題?
- 5-15分鐘獨(dú)立思考:不看題解,先自己想。哪怕想不出來(lái),思考的過(guò)程也極有價(jià)值。
- 寫(xiě)代碼并調(diào)試:用C語(yǔ)言實(shí)現(xiàn)你的思路,并通過(guò)測(cè)試用例。
printf大法好! - 查看題解:如果卡住超過(guò)20分鐘,果斷看題解。重點(diǎn)理解別人的思路,而不是代碼。
- 比較與反思:對(duì)比自己的代碼和最優(yōu)解,學(xué)習(xí)更優(yōu)雅的寫(xiě)法。
- 默寫(xiě)與復(fù)盤(pán):隔一天后,嘗試默寫(xiě)最優(yōu)解的代碼,并講出所以然。

浙公網(wǎng)安備 33010602011771號(hào)