标签:递归 目的 第三章 动态 结构 分解 自己的 结对编程 自底向上
一、基本思想
与分治法相似,基本思想,将求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。
但是它们也有很大的不同之处,即适用于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。
二、设计步骤
动态规划法适用于最优化问题,通常可按以下4个步骤设计:
1)找出最优解的性质,并刻画其结构特征
2)递归地定义最优解
3)以自底向上的方式计算出最优值
4)根据计算最优值时得到的信息,构造最优解
三、问题特征
四、编程题递归方程
1、单调递增最长子序列:m[i] = max{ m[k] + 1 | a[k] < a[i] } (1<= k < i)
m[i] = 1 (k = 0)
2、租用游艇问题:m[i] = max {cost[i][j] + m[j]}, i+1 <= j <= n
五、结对编程情况
1、课堂上学习的时候老师讲的很清楚,解题的思想很容易被理解,题目的代码也能看明白,但是真正自己写代码的时候,就感觉这是啥呀,就算写出了递归方程,想好了怎么填表,但是代码的实现困难重重,在以后要注意增强自己的实践动手能力。
2、结对编程的时候自己也要敢于动手,要把partner当成帮手,但不能完全依赖partner,要注重独立编程的能力。
标签:递归 目的 第三章 动态 结构 分解 自己的 结对编程 自底向上
原文地址:https://www.cnblogs.com/Timbal/p/11791477.html