1. 单调递增最长子序列
1.1 根据最优子结构性质,列出递归方程式
设a[ ]存放输入的一组数,b[ ]存放单调递增子序列的长度,max为b[ ]中最大元素以得到最长单调递增子序列的长度
递归方程式: b[ i ] = b[ j ] + 1, a[ i ] > a[ j ] && b[ i ] < b[ j ] + 1
max = b[ i ] , max < b[ i ]
1.2 给出填表法中表的维度、填表范围和填表顺序
表的维度:一维
填表范围:[1, n]
填表顺序:从a[ 0 ] 到 a[ n ],从左到右
1.3 分析该算法的时间和空间复杂度
时间复杂度:填表b[ ]过程中从左到右遍历数组所需时间的量级为n,填表完成后比较得到b[ ]最大值所需时间的量级也为n,所以时间复杂度为 O(n^2)
空间复杂度:填表法中表的维度为一维,且表长为n,所以空间复杂度为O(n)
2. 对于动态规划算法的理解
动态规划算法与分治法类似,都是将待求解问题分解为若干个子问题,求解子问题并合并,从而得到原问题的解
但是动态规划算法针对的是子问题之间并不相互独立,有些子问题被重复计算的问题,如一系列最优化问题
运用动态规划算法时,我们创建一个表格用于保存已解决子问题的答案,在需要时找出已求得的答案
3. 结对编程情况
上周结对编程情况进展顺利,实验课效率加快不少,向老师讲解题目时更加有条不紊,与编程伙伴的分工更加细致,深入学习了解了动态规划算法
浙公网安备 33010602011771号