第三次作业
按照动态规划法的求解步骤分析作业题目“数字三角形”:
1.根据最优子结构性质,递归方程应该为"dp[i][j] = max(dp[i-1][j-1],dp[i-1][j]) + a[i][j]",这个方程是在初始化好矩阵第一列以及每一行最后一位元素的动态规划后得出的,定义是该三角形从第三行开始每一行从第二个元素开始到倒数第二个元素结束的最优解,只能从上一行与之相邻的元素的最优子结构中得出,边界条件已经包括在我写的句子中;
2.表的维度是n * n,填表的范围是是第几行就填几个元素,填表顺序需要初始化第一列以及每一行最后一位元素后填第三行第一个元素开始特定的顺序填表,原问题的最优解可能是表的最后一行的任意值,这取决于你的输入;
3.时间复杂度和空间复杂度应该都是n^2;
对动态规划算法的理解和体会:
理解:首先动态规划法必须初始化且必须有最优子结构性质和重叠子问题性质,关于初始化,并不是所有动态规划问题的初始化都是固定的,需要灵活的通过具体要解决的问题进行判断;关于最优子结构和重叠字问题性质,这是满足动态规划的两个基本性质不必多说,但是需要我们通过答对问题的判断确认这些性质而后去通过动态规划解决问题。
体会:通过课本的例子,老师教学的例子以及我们的习题题目可以知道动态规划能够解决的问题很多,它很精妙,和我们过去一年多里学的东西都不一样,这也算是一个进阶学习的基础,总而言之,体会什么的不是一成不变的,体会也是动态的,至少在我写下这份作业的此刻,我认为动态规划给了我一些启示当然还有进步,接下来要更努力的做更好的自己。

浙公网安备 33010602011771号