摘要:
也是非常经典的一道题 比较简单的做法是: 设dp[i] i: 以nums[i]作为一个子数组的,最长的上升子序列 则有 无后效性:i肯定不会影响i之前的。 子问题重叠:算i+1,i+2 .. n 时,都需要dp[i] 最优子结构:for( int j=0;j<i;++j ) if ( nums[j] 阅读全文
摘要:
非常经典的一道题 设dp[i][j]为最长公共子序列 i:s1以i为结尾的字符串 j:s2以i为结尾的字符串 则有 无后效性:i+1与j+1 不会影响之前的 子问题重叠:使用i-1, j-1 来代表已经对的结果 最优子结构:dp[i][j] = s[i-1] == s[j-1] ? dp[i-1][ 阅读全文
摘要:
题 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 问:最大和是多少。 思路图解 设dp[i][j] i 为第i 行,j 为 第i行的第j个数字时。 则有 无后效性:向下选择的时候不会影响之前的选择 子问题重叠:使用dp[i-1] 来代表上一行已经选好的结果 最优子结构:dp[i][j] 阅读全文