第三章总结
1.单调递归最长子序列
1.1 根据最优子结构性质,列出递归方程式
m[i] :以第i个数为结尾的最长子序列
m[i] = max { m[j] } + 1
1.2 给出填表法中表的维度、填表范围和填表顺序。
表的维度为: 一维数组
填表的范围为:1 <= j < i
填表的顺序: 从左至右填表
1.3 分析该算法的时间复杂度和空间复杂度
时间复杂度:
利用两重循环进行逐一比较,因此算法的时间复杂度为O(n^2)。
空间复杂度:
利用一维数组,空间复杂度为n。
2.你对动态规划算法的理解。
动态规划与分治思想相似的是,都是将待求解的问题分解为若干个子问题,通过求解规模更小的子问题,再合并子问题的方式得到原问题的解,不同的是,动态规划所求解的子问题之间不是互相独立的。适用动态规划解决的问题,具有最优子结构性质和重叠子问题性质,而动态规划算法可以使用备忘录或填表的方法,避免大量重复的计算,提高解决问题的效率。
3.说明结对编程的情况。
在结对编程讨论过程中,我的表达能力得到了提升。对于问题的疑惑,能够通过和队友的交流得到及时有效的沟通和解决,提高了学习效率,同时也增加了学习的兴趣。