0
点赞
收藏
分享

微信扫一扫

Leetcode 算法面试冲刺 动态规划七讲 六 DP重点类型(双序列型 77 29 119 118 154 192)(五十)

独孤凌雪 2022-04-02 阅读 58

文章目录

双序列型动态规划

在这里插入图片描述

77 · 最长公共子序列

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态规划4步法:

1、确定状态

最后一步

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

子问题

在这里插入图片描述
注意:f[i]代表第一个序列前i个字符,f[j]代表第二个序列前j个字符,

2、转移方程

在这里插入图片描述
和区间型动态规划的区别:
在这里插入图片描述
区间型f[i][j]表示从i到j。i的取值是0~n-1,j的取值是i~n-i。
双序列型f[i][j]表示i和j两个不同的序列。i的取值是0~m。j的取值是0~n。

3、初始条件和边界情况

双序列型动态规划就是考虑空序列和另一个序列的关系(包括空对空)。
在这里插入图片描述

4、计算顺序

在这里插入图片描述
记住,计算顺序是和转移方程相关的。这里的转移方程只和前一行和前一列有关,所以还是经典的计算顺序。
在这里插入图片描述
老师的代码:
在这里插入图片描述

老师讲了下,怎么通过pai来记录最长子序列是哪个:
在这里插入图片描述
在这里插入图片描述

29 · 交叉字符串

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态规划4步法:

1、确定状态

最后一步

在这里插入图片描述

子问题

在这里插入图片描述
在这里插入图片描述

2、转移方程

在这里插入图片描述
这题本来是苦难题,但是通过动态规划的思想,一下子就简单了很多。

3、初始条件和边界情况

在这里插入图片描述

4、计算顺序

在这里插入图片描述
老师的代码:
在这里插入图片描述

119 · 编辑距离

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态规划4步法:

1、确定状态

最后一步

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

子问题

在这里插入图片描述

2、转移方程

在这里插入图片描述

3、初始条件和边界情况

在这里插入图片描述

4、计算顺序

在这里插入图片描述
下面是老师的代码:
在这里插入图片描述

118 · 不同的子序列

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态规划4步法:

1、确定状态

最后一步

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

子问题

在这里插入图片描述

2、转移方程

在这里插入图片描述

3、初始条件和边界情况

在这里插入图片描述
这里初始条件是根据数学意义算出来的。

4、计算顺序

在这里插入图片描述
老师代码如下:
在这里插入图片描述

154 · 正则表达式匹配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态规划4步法:

1、确定状态

最后一步

在这里插入图片描述
在这里插入图片描述
主要难点在于*的匹配。

子问题

在这里插入图片描述

2、转移方程

在这里插入图片描述
上面是普通matching,下面是*的情况,但是老师写出来,真的太简单了,记住简单的公式是因为想的多。想出来的。

3、初始条件和边界情况

在这里插入图片描述

4、计算顺序

在这里插入图片描述
下面是老师的代码:
在这里插入图片描述
在这里插入图片描述

192 · 通配符匹配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
*和前面的字母不挂钩了。

动态规划4步法:

1、确定状态

最后一步

在这里插入图片描述

子问题

在这里插入图片描述

2、转移方程

在这里插入图片描述

3、初始条件和边界情况

在这里插入图片描述

4、计算顺序

在这里插入图片描述

老师的代码:
在这里插入图片描述

总结

在这里插入图片描述

举报

相关推荐

0 条评论