第三章作业

1、实践报告
用一个二维数组a来接收数据,并排成下三角的样子,就是从左到右,再从上到下的三角形,再定义一个新数组b来存放每个位置对应的最大和
1.1 对于新数组b来说,除第一行外,剩下的每一行的每一个元素的值都等于该位置在a数组的值加上该位置上一行或左上的最大值,就是b[i][j] = a[i][j] + max(b[i-1][j],b[i-1][j-1])
1.2 填表时,表的维度为n*n,填表范围为下三角,填表顺序为从上到下,从左到右。原问题的最优解是b[n][n]。
1.3 因为要解决该问题就需要填一个二维数组表格,所以该问题的时间复杂度和空间复杂度都为O(n^2)

2、我对动态规划算法的理解和体会
动态规划的核心思想是将复杂问题分解为若干个相互重复并且关联的子问题,通过求解子问题的最优解来推导原问题的最优解。它拥有重叠子问题和最优子结构的性质。学会动态规划的关键点在于数组元素的定义确定和分解问题。

posted @ 2025-11-16 21:01  manhhh  阅读(0)  评论(0)    收藏  举报