第三章作业
1. 第三章作业题“单调递增最长子序列”分析
1.1 根据最优子结构性质,列出递归方程式
dp[i]=max(dp[j],dp[i]-1)+1;
1.2 给出填表法中表的维度、填表范围和填表顺序。
表的维度:一维,b[i]记录a[0]到a[i]的单调递增最长子序列。
填表范围:从0到n。
填表顺序:从左往右。
1.3 分析该算法的时间和空间复杂度
时间复杂度:双层循环,时间复杂度为 O(n^2)。
空间复杂度:多个一维数组,空间复杂度为 O(n)。
2. 你对动态规划算法的理解
类似于分治法,将复杂问题分解为多个简单的子问题,分别求解,最后得到原问题的解,不同之处在于,动态规划法将子问题的解保存在一张表中,
防止在解决更高一层的子问题时对低层的同一子问题重复求解,避免大量重复计算,降低时间复杂度。
动态规划适用于解最优化问题,通常分4个步骤:
1、找出最优解的性质,刻画其结构特征。
2、递归地定义最优值
3、自底向上地计算最优值
4、根据计算最优值得到的信息构造最优解
3. 说明结对编程情况
两个人对同一题有不同的解题思路,可以更客观地找出对方的方法的优缺点。