第三章作业

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. 说明结对编程情况

  两个人对同一题有不同的解题思路,可以更客观地找出对方的方法的优缺点。

posted @ 2020-11-01 02:12  HaLi_Kui  阅读(52)  评论(0编辑  收藏  举报