刷过LeetCode的人,十个里有八个被动态规划劝退过。不是题太难,是教程一上来就甩状态转移方程,像教游泳直接扔深水区。
Dynamic Programming Made Simple这篇文章的作者看不下去了。他翻遍主流课程发现,大家教DP的顺序完全反了——先讲"最优子结构"这种术语,再让学生硬背斐波那契和背包模板。结果300万用户收藏了题解,下次遇到变形题照样懵。
作者自己踩过这个坑。他早期学DP时,花了三周硬磕"最大子数组和",后来才发现那道题的解法可以套在股票买卖、打家劫舍等十几道题上。「DP不是算法,是识别问题的眼镜」——这是他整篇文章里最狠的一句判断。
他改了教学顺序:先练10道能肉眼看出"重叠子问题"的题,再碰状态压缩。测试组里用新方法的人,平均刷题时间从47天降到12天。有个用户留言说,以前看到DP标签直接跳过,现在反而专门挑这类题做。
文章最后放了作者自己整理的"DP模式识别清单",按场景而不是难度分类。评论区最高赞是:"终于有人承认是教材的问题,不是我脑子的问题。"
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.