1、目前动态规划的子序列系列的题目之间的区别与联系
【力扣300.最长递增子序列】一个数组,不连续
【力扣674.最长连续递增子序列】一个数组,连续
【力扣718.最长重复子数组】两个数组,连续
【力扣1143.最长公共子序列】两个数组,不连续
【力扣1035.不相交的线】(与1143本质一样)两个数组,不连续
【力扣53.最大子数组和】一个数组,连续
【力扣392.判断子序列】(与1143本质一样)两个数组,不连续
本题【力扣115.不同的子序列】(与1143本质一样)两个数组,不连续
2、关键区别
本题的是列可以删减,上一题是行可以删减。所以引起的递推公式不同。


3、注意事项
(提交代码的时候)出现问题要去打印dp数组看一下问题在哪里

打印一下dp数组,拿出来看一下
【(C++语法)打印二维dp数组的代码,如下图所示】

点击下图的“+”号可以添加解答错误的测试用例

根据dp数组具体分析错误原因

好像是初始化有问题,去看初始化部分的代码
(去看了对应代码......)
发现问题所在:初始化第一行和第一列的时候没有初始化完
【原初始化代码,如下图所示】

【修改后初始化代码,如下图所示】

4、dp数组用int出现“整数溢出”的时候,可以换成:uint64_t
(用中文方便记忆:无符号整数64位的定义)(C++语法)

255

被折叠的 条评论
为什么被折叠?



