作为一个新手程序员,我在算法面前曾经非常无力。
最开始连双指针是什么都搞不懂,链表题看一眼就头疼,动态规划更像是某种“黑魔法”。但现在,一个月过去了,我可以独立完成大部分简单和中等难度的题目,尤其是经典题型:双指针、哈希表、链表、动态规划,都能慢慢摸出套路。
这篇文章,就想分享一下我这一个月的真实感受和学习方法,也希望给正在学习算法的你一些参考。
🧭 一开始,我真的“啥都不会”
我是在 LeetCode 上开始刷题的。
刚开始真的很懵,一道简单题看题就要看很久,有些英语题干+边界条件 + 奇怪的数据结构组合起来,完全不知道怎么下手。
一度以为“是不是我不适合算法”。
直到我放弃死磕,开始总结套路和分类刷题,情况就慢慢变了。
🧩 分类刷题,建立模型感知力
我学算法,不追求一题一解,而是追求“识别能力”。
比如:
-
双指针题型(如盛水最多容器、有序数组去重、三数之和)
-
我会总结:它们的共同点是“有序 + 范围 + 窗口”,重点是指针如何移动。
-
哈希表题型(如两数之和、异位词判断、最长子串无重复字符)
-
常用 map 来做查重、记录索引位置或统计频率。
-
链表题型(如反转链表、合并有序链表、环形链表判断)
-
熟练使用 dummy 节点、快慢指针是关键。
-
动态规划(从爬楼梯、打家劫舍,到背包问题)
-
一开始照着写,后来尝试自己推状态转移方程。
通过 “按类型刷 + 做题后总结”,我渐渐能在新题里识别出“老套路”。
🎯 独立做题 = 建立思考路径
以前我做题,习惯直接看题解。但现在我逼自己:
-
读题不急于写代码,先列出所有已知条件和目标
-
画图 or 举例子
-
尝试用伪代码描述思路
哪怕最后思路是错的,我也会去分析哪里错了,哪个逻辑断了,是否是边界没考虑。
做完后我会留下一句话:“如果明天再做一遍,我该怎么写?”
💡 一个月后的变化
-
从“题目都看不懂”,变成“看题能想到思路”
-
学会分析题型,能识别哪些题是变形套路
-
能写出结构清晰、易于调试的代码
-
开始尝试用 Python 写出自己的题解笔记
最重要的是:我不再怕算法了。
📌 给刚起步的你一点建议
-
不要盲目刷题数量,而要聚焦“题型”归纳
-
每天刷少量 + 做总结,比一口气刷十道更有效
-
用自己的方式表达思路(画图、注释、伪代码)
-
题解只是参考,不是答案,写不出来不要直接照抄
-
坚持 > 才华,进步不是突然发生的,而是悄悄积累出来的
📎 最后
我不是什么大牛,只是一个愿意把“不会”熬成“会”的人。
一个月的算法学习,不仅提升了刷题能力,更重要的是让我找回了解决问题的成就感。
如果你还在起点,请坚持下去;如果你也在学习路上,欢迎留言交流我们遇到的坑。
让我们都在这条看似枯燥但其实很酷的算法之路上,走得更远一点。