LeetCode dp专题

Posted demian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode dp专题相关的知识,希望对你有一定的参考价值。

longest valid parentheses:

dp[i]表示到i为止合法的()长度

s[i] == ‘)‘ :

dp[i] = dp[i-2] + 2                          ( s[i]==‘(‘ )

dp[i] = dp[i-1] + 2 + dp[i-dp[i-1]-2]  ( s[i-1] == ‘)‘ && s[i-1-dp[i-1]] == ‘(‘ )

注意判断数组下标值是否存在

 

72. Edit Distance

将word1转换成word2:

三种操作:插入/删除/替换 一个字符

dp[i][j]表示word1 [0, i),word2 [0, j) 子串转换成功时的最少转换次数

初始化: dp[0][j]=j 插入操作,dp[i][0]=i 删除操作

word1[i-1]==word2[j-1]: dp[i][j] = dp[i-1][j-1]

word1[i-1]!=word2[j-1]:  dp[i][j] = min(dp[i-1][j-1], min(dp[i][j-1], dp[i-1][j])) + 1;

对应三种操作:替换 dp[i-1][j-1] + 1, 删除(word1[i-1])  dp[i-1][j] + 1,

       插入(word1[i-1]后插入word2[j-1]才两个子串相同 <=> 删除word2[j-1]使得两个子串相同) dp[i][j-1] + 1 

以上是关于LeetCode dp专题的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode之动态规划(DP)专题-63. 不同路径 II(Unique Paths II)

Leetcode之动态规划(DP)专题-1025. 除数博弈(Divisor Game)

Leetcode之动态规划(DP)专题-62. 不同路径(Unique Paths)

Leetcode之动态规划(DP)专题-53. 最大子序和(Maximum Subarray)

Leetcode之动态规划(DP)专题-647. 回文子串(Palindromic Substrings)

Leetcode之动态规划(DP)专题-474. 一和零(Ones and Zeroes)