头图

一、一道编辑距离,两种完全不同的学习体验

去年学动态规划时,最痛苦的瞬间不是写不出状态转移方程,而是看题解时“看懂”了,自己写时却“想不出来”。题解告诉你dp[i][j]的定义和递推公式,但它不告诉你为什么这样定义、为什么这样转移

大模型(01gpt.cn) 上对比各模型的推理能力时,Grok 4.3 在算法推导上的表现与GPT-5.5打成平手,但在“推导展开度”上更胜一筹。它不会跳过任何一个推导环节,每一步都有明确的依据和解释。用它的原话说:“优化不是魔法,每一步空间压缩都有明确的数学依据。”

我花了三周时间让它系统讲解了几十道DP题目,从递归回溯到记忆化搜索再到DP,从二维到一维的空间优化,以下是完整的学习路径和实战心得。

二、Grok 4.3 的DP教学风格:不跳步,追根因

GPT-5.5解题倾向于直接给最优解,中间推导偶尔跳步。Grok 4.3的风格则完全相反——它像一位耐心的教练,每一步推导都附带解释:为什么选择这个状态定义、为什么转移方程这样写、为什么边界这样处理。

以“最长回文子串”为例,Grok 4.3的讲解路径是:先讲暴力枚举的思路和复杂度,再引出中心扩展法的直觉来源,然后分析为什么DP解法能从中心扩展法推导出来,最后讲空间优化的数学依据。这四步走下来,你理解的不只是一道题的解法,而是“遇到回文类问题该怎么思考”的方法论。

三、从递归到DP的四步推导法

Grok 4.3在讲解每道DP题时,都会遵循一套固定的推导框架。这套框架本身比任何单道题的解法都更有价值:

Step 1:定义状态——dp[i]或dpi到底代表什么? Grok 4.3会先解释“为什么选这个定义”,而不是直接告诉你dp[i]表示什么。它会对比几种可能的定义方式,分析每种定义的优劣,然后选择最优的那个。

Step 2:推导转移方程——从最后一步反推。 这是DP最难的一步。Grok 4.3的习惯是“从最后一步反推”——假设你已经知道了前面所有子问题的解,最后一步有几种选择?每种选择对应的代价是什么?这种“反推法”比正向思考更符合DP的思维方式。

Step 3:处理边界——空数组、单元素、负值。 Grok 4.3会穷举所有可能出错的边界情况,不会漏掉任何一个。它还会解释“为什么这个边界要这样处理”,而不是简单地说“初始化为0”。

Step 4:空间优化——从二维到一维,从O(n²)到O(n)。 这是Grok 4.3最出彩的一步。它不会直接说“我们可以用滚动数组优化”,而是分析转移方程中每个dp[i][j]依赖哪些之前的状态,然后判断哪些维度可以压缩、哪些不行。它还会指出“这个优化在某些变种题里不适用”,让你理解优化的前提条件。

四、经典DP题型的通用模板

经过几十道DP题的系统讲解,Grok 4.3帮我总结出了几类经典DP题型的通用模板:

DP类型关键特征状态定义模板空间优化技巧
背包问题有限容量+物品选择dp[i][w]:前i个物品,容量w的最大价值逆序遍历,降为dp[w]
编辑距离两个字符串的转换代价dp[i][j]:s1前i个和s2前j个的最小代价滚动数组,保留两行
最长子序列序列中的选择/不选dp[i]:以第i个元素结尾的最优解通常需记录所有位置,难优化
区间DP区间合并的最优代价dp[i][j]:区间[i,j]的最优解按区间长度递增,难优化
状态机DP多状态间的转移dp[i][state]:第i天处于某状态的最优解状态数少时原地更新

这些模板的价值在于:当遇到新题时,先判断属于哪个类型,再套用对应的思考框架,而不是从零开始摸索。

五、最实用的优化技巧清单

Grok 4.3在讲解每道题时,都会单独强调“这道题的空间优化技巧”。以下是它反复使用的几类技巧:

滚动数组——最常用的优化。dp[i]只依赖dp[i-1]时,可以用dp[0]dp[1]交替滚动,空间从O(n)降为O(1)。

逆序遍历——避免状态被覆盖。 在背包问题中,将容量维度的遍历顺序从正序改为逆序,可以确保每个物品只被使用一次。Grok 4.3会解释“为什么逆序能避免覆盖”——因为每个dp[w]依赖的是上一行的dp[w]dp[w-wt[i]],逆序确保这些值还没被更新。

状态压缩——用二进制表示状态。 对于状态数有限的DP,可以用一个整数的二进制位来表示多个布尔状态。Grok 4.3在讲解旅行商问题时详细拆解了这种技巧。

剪枝——提前终止不可能的分支。 不是所有DP都需要穷举所有状态。Grok 4.3会分析“什么情况下可以提前跳出循环”,比如背包问题中当剩余容量小于所有物品重量时可以直接返回。

六、DP学习的三个层次与AI辅助的边界

用Grok 4.3学DP三周后,我最大的感受是:AI辅助把DP学习从“背题型”变成了“理解思维过程”。但AI也有明确的边界:

层次一(初级):理解状态定义和转移方程。 AI能讲得很清楚,适合初学者。层次二(中级):推导空间优化和理解前提条件。 AI能给出每一步的数学依据,但需要你自己判断在变种题中是否适用。层次三(高级):面对新题独立设计DP方案。 这是AI无法替代的——它只能帮你理解已有的解法,无法帮你建立“遇到新问题时的创造性思维”。

七、总结

Grok 4.3在DP教学上的核心价值不是“通过率最高”,而是“推导过程最完整”。它不跳步、追根因的风格,恰好弥补了传统题解“只给答案不讲思路”的缺陷。从递归回溯到记忆化搜索再到DP,从二维到一维的空间优化,每一步都有明确的依据和解释。

对于正在系统提升算法能力的开发者来说,Grok 4.3是一个耐心、严谨、随时可追问的教练。它会告诉你“优化不是魔法,每一步空间压缩都有明确的数学依据”。知道每一步为什么这么走,比知道最终答案更重要。


爱运动的黄瓜
1 声望0 粉丝