算法第三章作业

对动态规划法的理解

动态规划法适用于解最优化问题,通常可分为四个步骤:

1.找出最优解的性质,并刻画其结构特征;

2.递归地定义最优值;

3.以自底向上的方式计算出最优解;

4.根据计算最优解时得到的信息,构造最优解。

其中我认为,最重要的是第2、3步,我们要首先写出一道题目的递归方程,然后根据题目的要求,画出二维或者是一维的表,这样可以更加便捷的找到题目中各项数据的联系。

在解决一些问题的时候,我们往往会因为重复计算子问题而倒是时间复杂度变大,而动态规划巧妙地避开了这个问题,她是把每一个子问题的答案记录下来,等到要调用的时候,就可以轻松地填入数据了。

单调递增最长子序列、租用游艇问题递归方程

单调递增最长子序列:当满足a[j] < a[i] && b[j] > b[i] - 1时b[i] = max(1, b[j] + 1)

dp[ i ] 表示到i站时的最小租金:b[1][n] = min(b[1][n-1] + b[n-1][n],b[1][n])

结对编程情况

当两个人对题目都比较苦手的时候,就要更加耐心、细心地分析问题。这次我和搭档在结对编程过程中对动态规划都不是十分熟练,但是我们都有耐心地审题和画图,多次下来就逐渐看到了自己的错误点。

posted @ 2019-11-02 23:31  Backey  阅读(84)  评论(0编辑  收藏  举报