特点:一般给两个字符串
- State: f[i][j] 代表了第一个sequence 的前i 个数字/字符, 配上第二个sequence的前 j个...
- Function: f[i][j] 研究 第 i 个和第 j 个的匹配关系
- Initialize : f[i][0] 和 f[0][j]
- Answer : f[n][m]
- n = len(s1)
- m = len(s2)
技巧:
状态即是问题的答案
初始化一个二维的动态规划时,就去初始化第0行和第0列
例子:
最长公共子序列 https://leetcode-cn.com/problems/longest-common-subsequence/
编辑距离 https://leetcode-cn.com/problems/edit-distance/
一次编辑 https://leetcode-cn.com/problems/one-away-lcci/
交错字符串 https://leetcode-cn.com/problems/interleaving-string/submissions/