摘要: 也是非常经典的一道题 比较简单的做法是: 设dp[i] i: 以nums[i]作为一个子数组的,最长的上升子序列 则有 无后效性:i肯定不会影响i之前的。 子问题重叠:算i+1,i+2 .. n 时,都需要dp[i] 最优子结构:for( int j=0;j<i;++j ) if ( nums[j] 阅读全文
posted @ 2022-05-06 19:57 传说中的水牛 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 非常经典的一道题 设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][ 阅读全文
posted @ 2022-05-06 13:26 传说中的水牛 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 题 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] 阅读全文
posted @ 2022-05-06 12:31 传说中的水牛 阅读(11) 评论(0) 推荐(0) 编辑