第三章作业
1.1 递归方程式、定义及边界条件
-
定义:设 s[i][j] 表示从数字三角形顶部(第1行第1列)走到第 i 行第 j 列时的最大路径和。
-
递归方程式:当 i > 1 时,第 i 行第 j 列的最大路径和,等于该位置自身值加上其上方相邻的第 i-1 行第 j-1 列、第 i-1 行第 j 列的最大路径和的较大值,即:
s[i][j] = 自身值 + max(s[i-1][j-1], s[i-1][j]) -
边界条件:当 i = 1 (三角形第1行)时,仅存在1个元素,其最大路径和为自身值,即:
s[1][1] = 第1行第1列的原始值
1.2 填表法分析
-
表的维度:使用二维表格 s ,维度为 n * n ( n 为数字三角形的行数), s[i][j] 对应上述定义的最大路径和。
-
填表范围:行范围为第1行到第 n 行( i = 1 到 i = n );列范围为第 i 行的第1列到第 i 列( j = 1 到 j = i )(因第 i 行包含 i 个元素)。
-
填表顺序:采用“从上到下、从左到右”的顺序填表:先填第1行(仅填充 s[1][1] ),再依次填充第2行到第 n 行,每行内从左到右填写每个元素( j 从1到 i )。
-
原问题的最优值:数字三角形的最大路径和是第 n 行所有元素的最大值,即 max(s[n][1], s[n][2], ..., s[n][n]) 。
1.3 时间和空间复杂度分析
-
时间复杂度:填表需遍历三角形的所有元素,元素总数为 1 + 2 + ... + n = n(n+1)/2 ,每个元素的计算仅需常数时间(加法、取最大值操作),因此时间复杂度为 O(n²) 。
-
空间复杂度:使用 n * n 的二维数组 s 存储中间结果,因此空间复杂度为 O(n²) 。

浙公网安备 33010602011771号