> 技术文档 > 解锁动态规划的奥秘:从零到精通的创新思维解析(5)

解锁动态规划的奥秘:从零到精通的创新思维解析(5)


解锁动态规划的奥秘:从零到精通的创新思维解析(5)

前言:

小编在前几日分享了关于动态规划的题目,今天我们继续沿着之前的思路,深入探索动态规划的魅力。今天要讲解的依旧是路径问题,与前面讲过的题目在解法上有一定相似之处。如果大家对这类题目的解法还不太熟悉,可以回顾一下之前的文章,巩固基础。话不多说,让我们进入今天的代码之旅

正文:

1.最小路径和

1.1.题目来源

本题同样来自于力扣,下面小编给出它的链接:64. 最小路径和 - 力扣(LeetCode)解锁动态规划的奥秘:从零到精通的创新思维解析(5)

1.2.题目解读

本题读起来还是很简单的,此时就是给定我们一个数组,每个位置上都有一个数组,询问当我们走到最后位置的时候的所有路径中,寻找路径上的数加起来最小的那条路径,这个题目其实就是小编之前讲述的珠宝问题,只不过珠宝问题是求解最大珠宝,这个问题是求解最小路径和罢了,下面我们直接进行思路讲解。

1.3.思路讲解

对于动态规划的题目,还是要先创建一个dp表,此时根据题目我们可以知晓需要用到一个二维的dp表,此时创建完dp表以后,就可以五步走分析这个题目了。

1.状态表示

对于线性的dp表,我们通常都是经验 + 题目要求来进行状态表示的,此时我们可以某个位置为结尾或者进行分析,本题的状态表示也是很容易看出的,dp[i] [j]可以表示为到达[i,j]位置时的最小路径和,根据此时的状态表示,我们就可以书写出状态转换方程。

2.状态转换方程

此时这个方程可以通过题目的解读来分析出来,我们知道,此时到达[i,j]位置的方式无非就是两种,分别是从上面到达,或者从左边到达,此时我们计算他俩之间的最小值,再加上当前位置本身的值,来推测出状态转换方程,其分析过程如下所示:

解锁动态规划的奥秘:从零到精通的创新思维解析(5)

方程具体书写形式如下所示: