刷题顺序
核心学习建议(非常重要!)
- 理解优先于死记:不要死记硬背代码。理解每一行代码为什么这样写,算法的核心思想是什么。
- 调试是好朋友:学会使用
printf进行调试,打印关键变量的值,跟踪程序执行流程。这是C语言程序员最重要的基本功之一。 - 注重基础语法:在简单题中巩固
数组、循环、条件判断、函数等基本语法。 - 画图分析:对于复杂一点的算法,拿纸笔画一画执行过程,思路会清晰很多。
- 坚持与复盘:每天坚持做1-2题,胜过周末一天做10题。定期回顾做错的题目。
第一阶段:入门基础(建立信心,熟悉语法)
这个阶段的目标是熟悉力扣的做题方式,并用C语言实现最基本的逻辑。题目几乎都不需要复杂算法。
| 题号 | 名称 | 考察点 | 难度 | 备注 |
|---|---|---|---|---|
| LCP 01 | 猜数字 | 数组遍历、比较 | 🟢 简单 | 完美的开始 |
| 剑指 Offer 05 | 替换空格 | 字符串遍历 | 🟢 简单 | 学习处理字符串 |
| 1470 | 重新排列数组 | 数组下标操作 | 🟢 简单 | 很好的数组练习 |
| 1480 | 一维数组的动态和 | 数组、循环 | 🟢 简单 | 前缀和思想的雏形 |
| 1431 | 拥有最多糖果的孩子 | 数组遍历、找最大值 | 🟢 简单 | |
| 1512 | 好数对的数目 | 双重循环 | 🟢 简单 | 经典的双重for循环 |
| 1672 | 最富有客户的资产总量 | 二维数组、循环嵌套 | 🟢 简单 | 学习处理二维数组 |
| 771 | 宝石与石头 | 字符串、哈希集合思想 | 🟢 简单 | 可以尝试用int数组模拟哈希表 |
| 1342 | 将数字变成 0 的操作次数 | 循环、位运算(可选) | 🟢 简单 | 学习循环和条件判断 |
第二阶段:核心数据结构(承上启下)
开始接触最基础的数据结构和算法思想。链表是C语言的重点和难点,务必多花时间理解指针和内存管理。
| 题号 | 名称 | 考察点 | 难度 | 备注 |
|---|---|---|---|---|
| 剑指 Offer 06 | 从尾到头打印链表 | 链表、递归/栈 | 🟢 简单 | 学习链表遍历,可尝试递归 |
| 206 | 反转链表 | 链表、指针操作 | 🟢 简单 | 极其重要!必刷! |
| 21 | 合并两个有序链表 | 链表、指针操作 | 🟢 简单 | 经典题,理解“哑节点” |
| 83 | 删除排序链表中的重复元素 | 链表遍历、删除节点 | 🟢 简单 | 巩固链表操作 |
| 20 | 有效的括号 | 栈 | 🟢 简单 | 经典栈应用,可用数组模拟栈 |
| 232 | 用栈实现队列 | 栈、队列 | 🟡 中等 | 学习数据结构的相互实现 |
| 144 | 二叉树的前序遍历 | 二叉树、递归 | 🟢 简单 | 树结构的入门,理解递归 |
| 104 | 二叉树的最大深度 | 二叉树、递归/DFS | 🟢 简单 | “分治”思想的入门 |
| 226 | 翻转二叉树 | 二叉树、递归 | 🟢 简单 | 经典递归问题 |
第三阶段:基础算法思想(挑战升级)
学习最基础的算法思想,如二分查找、双指针、简单动态规划。这些是解决更复杂问题的基石。
| 题号 | 名称 | 考察点 | 难度 | 备注 |
|---|---|---|---|---|
| 704 | 二分查找 | 二分算法 | 🟢 简单 | 算法基石,理解循环不变量 |
| 35 | 搜索插入位置 | 二分查找的变种 | 🟢 简单 | 巩固二分 |
| 278 | 第一个错误的版本 | 二分查找的变种 | 🟢 简单 | 巩固二分 |
| 283 | 移动零 | 双指针 | 🟢 简单 | 经典双指针,原地操作 |
| 977 | 有序数组的平方 | 双指针 | 🟢 简单 | 双指针的巧妙应用 |
| 70 | 爬楼梯 | 动态规划 | 🟢 简单 | DP入门第一题,理解状态转移 |
| 53 | 最大子数组和 | 动态规划/贪心 | 🟡 中等 | 非常重要且经典 |
| 121 | 买卖股票的最佳时机 | 动态规划/贪心 | 🟢 简单 | 经典问题 |
| 118 | 杨辉三角 | 二维数组、动态规划思想 | 🟢 简单 | 找规律 |
第四阶段:进阶与巩固(综合运用)
尝试一些标签为“中等”的题目,它们通常需要组合运用多种知识。
| 题号 | 名称 | 考察点 | 难度 |
|---|---|---|---|
| 3 | 无重复字符的最长子串 | 滑动窗口、哈希表 | 🟡 中等 |
| 46 | 全排列 | 回溯算法 | 🟡 中等 |
| 102 | 二叉树的层序遍历 | 二叉树、BFS、队列 | 🟡 中等 |
| 94 | 二叉树的中序遍历 | 二叉树、递归/迭代 | 🟢 简单 |
| 19 | 删除链表的倒数第 N 个结点 | 链表、双指针(快慢指针) | 🟡 中等 |
| 141 | 环形链表 | 链表、双指针(快慢指针) | 🟢 简单 |
如何刷题?
- 5-15分钟独立思考:不看题解,先自己想。哪怕想不出来,思考的过程也极有价值。
- 写代码并调试:用C语言实现你的思路,并通过测试用例。
printf大法好! - 查看题解:如果卡住超过20分钟,果断看题解。重点理解别人的思路,而不是代码。
- 比较与反思:对比自己的代码和最优解,学习更优雅的写法。
- 默写与复盘:隔一天后,尝试默写最优解的代码,并讲出所以然。

浙公网安备 33010602011771号