1. 刷题日记的价值与意义
作为一名程序员,我坚持刷题已经三年多了。最初只是为了应付面试,后来发现刷题带给我的远不止于此。每周记录刷题过程,不仅帮助我系统化整理算法知识,更让我养成了持续学习和反思的习惯。
刷题日记的核心价值在于建立个人知识体系。不同于单纯在LeetCode上提交代码,写日记强迫你理清解题思路、分析时间复杂度和空间复杂度、总结同类问题的解法模式。这种深度思考的过程,往往比刷题数量更重要。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 我的刷题日记框架
2.1 题目基本信息记录
每篇日记开头我都会记录题目基本信息:
- 题目名称和编号(如LeetCode 15. 三数之和)
- 题目难度(简单/中等/困难)
- 题目分类(数组、链表、动态规划等)
- 首次解题耗时
- 解题语言(我主要用Python和Go)
提示:建议使用Markdown表格整理这些信息,方便后期统计和分析。
2.2 解题思路详解
这是日记的核心部分。我会详细记录:
- 第一直觉解法:即使是最暴力的解法也值得记录,这是思考的起点
- 优化思路:如何从O(n³)优化到O(n²)的过程
- 最终解法:包括代码实现和必要的注释
以"三数之和"为例,我的思考过程:
- 暴力三重循环(立即否决)
- 双重循环+哈希表(需要考虑去重)
- 排序+双指针(最优解)
2.3 代码实现与优化
python复制def threeSum(nums):
nums.sort()
res = []
for i in range(len(nums)-2):
if i > 0 and nums[i] == nums[i-1]:
continue
l, r = i+1, len(nums)-1
while l < r:
s = nums[i] + nums[l] + nums[r]
if s < 0:
l += 1
elif s > 0:
r -= 1
else:
res.append([nums[i],
