"2026-01-21 hetao1733837 的刷题笔记"这个标题看似简单,实则蕴含了程序员成长路上的关键环节——系统性刷题训练。作为一名经历过校招和跳槽季的老程序员,我深知一套高质量的刷题笔记对技术面试的重要性。这份笔记的特殊之处在于它标注了具体日期(2026-01-21),说明这是持续学习过程中的一个阶段性成果,而非临时抱佛脚的产物。
刷题笔记不同于普通的学习笔记,它需要包含题目解析、多种解法比较、时间空间复杂度分析、边界条件处理等核心要素。优秀的刷题笔记往往采用"问题描述→初始思路→优化过程→最终方案→同类题型"的结构,这正是大多数技术面试的考察逻辑。从命名中的"hetao1733837"可以推测,这很可能是一位开发者在GitHub、LeetCode等平台的账号,这类个人刷题记录往往比标准化教程更具参考价值,因为它们真实记录了解决问题的思考过程。
在头部科技公司的技术面试中,算法题解答能力占据了至少60%的权重。我的亲身经历证明:面试官最看重的不是最终答案,而是你如何一步步分析问题、优化解法的思考过程。一份好的刷题笔记应该完整呈现这个思维轨迹:
例如在解决"二叉树最大路径和"问题时,我的笔记会记录:
第一版忽略了路径不一定经过根节点的情况 → 通过后序遍历改进 → 发现全局变量记录最大值的技巧 → 最终实现时间复杂度O(n)的解法
刷题笔记最大的价值在于形成可复用的解题模式库。经过300+题的训练后,我发现90%的新题都可以归入以下类别:
| 题型类别 | 代表问题 | 核心技巧 |
|---|---|---|
| 滑动窗口 | 最长无重复子串 | 左右指针+哈希表记录 |
| 回溯法 | 全排列 | 递归树+剪枝条件 |
| 动态规划 | 零钱兑换 | 状态转移方程+空间优化 |
| 图论 | 课程表拓扑排序 | 入度统计+BFS |
| 前缀和 | 和为K的子数组 | 累积和+哈希表快速查询 |
我的笔记会为每种类别建立专项章节,记录这类问题的通用解法模板。比如动态规划章节会包含:
根据我的实战经验,单道题目的理想学习时长应控制在45-90分钟,遵循以下流程:
限时思考(15分钟)
对比解法(20分钟)
手写实现(30分钟)
复盘总结(10分钟)
以"合并K个有序链表"为例,我的笔记会包含:
工欲善其事必先利其器,经过多次迭代,我的刷题环境配置如下:
开发环境:
效率工具:
调试技巧:
python复制# 在递归算法中添加调试打印
def dfs(node, level=0):
print(" "*level + f"访问节点 {node.val}")
# ...递归逻辑...
以经典的"最长递增子序列(LIS)"问题为例,展示我的笔记记录方式:
问题描述:
给定数组nums,找到最长严格递增子序列的长度
解法演进:
python复制for j in range(i):
if nums[j] < nums[i]:
dp[i] = max(dp[i], dp[j]+1)
易错点:
dp = [1]*n而非全0二叉树问题有相对固定的解题框架,我的笔记中会总结如下模板:
递归三要素:
python复制def traverse(node):
if not node: return
# 前序遍历位置
traverse(node.left)
# 中序遍历位置
traverse(node.right)
# 后序遍历位置
迭代写法技巧:
根据面试统计,以下题目出现频率最高,建议重点掌握:
数组/字符串:
链表:
系统设计:
我的笔记会为每道高频题标注:
真实面试环境与平时刷题有很大不同,建议:
在笔记中我会记录典型面试对话:
面试官:"这个解法的时间复杂度是多少?"
好的回答:"初始解法是O(n²),因为... 经过优化后可以达到O(n),方法是..."
我的刷题笔记采用分层管理架构:
code复制刷题仓库/
├── 按题型/
│ ├── 动态规划.md
│ └── 图论.md
├── 按公司/
│ ├── Google高频.md
│ └── 字节跳动.md
└── 解题模板/
├── 二分查找.py
└── 回溯法模板.py
使用Git进行版本控制,每次更新提交信息形如:
bash复制git commit -m "[DP] 新增背包问题九讲笔记"
根据艾宾浩斯遗忘曲线,我制定了复习提醒:
在Notion中设置自动化提醒,确保知识持续巩固。对于易忘的题目,我会在笔记中添加特殊标记:
🔄 需重点复习:KMP算法实现细节较复杂,每月回顾一次
根据我带新人的经验,刷题初期容易陷入这些陷阱:
我的笔记中会特别标注这些"坑位",例如:
⚠️ 在解决排列问题时,务必先问清是否包含重复元素,这是90%的出错点
经过两年实践,这些方法显著提高了我的刷题效率:
问题拆解法:将复杂问题分解为已解决的子问题
可视化分析:用图形辅助理解算法
python复制# 打印二叉树的层状结构
def print_tree(root):
from collections import deque
q = deque([root])
while q:
# ...按层打印逻辑...
模板化编程:准备常用算法的代码片段库
最后给坚持刷题的朋友一个建议:把每道题当作一个迷你项目来对待,从需求分析(理解题意)到测试验收(通过所有用例)完整走一遍流程,这样的刷题笔记才会成为你技术成长的坚实基石。