第三次作业
1.1 递归方程式与边界条件
定义 dp [i][j] 为从第 i 行第 j 列元素到三角形底部的最优路径和。递归方程式为 dp [i][j] = triangle [i][j] + max (dp [i+1][j], dp [i+1][j+1]),核心是当前最优值依赖下一行相邻两元素的最优解。边界条件为最后一行 dp [n-1][j] = triangle [n-1][j](n 为三角形行数),底部元素最优路径和即自身。
1.2 填表法相关说明
表为二维数组,维度与数字三角形一致(n 行 n 列)。填表范围是从倒数第二行到第一行,每行从左至右填写。填表顺序遵循 “自底向上”,避免重复计算子问题。原问题最优值为 dp [0][0],对应三角形顶部元素到底部的最优路径和。
1.3 时间与空间复杂度分析
时间复杂度为 O (n²),需遍历二维表格中所有元素,每个元素计算仅需一次 max 运算。空间复杂度可优化至 O (n),通过一维数组存储当前行最优解(覆盖上一行无用数据),原始二维存储时空间复杂度为 O (n²)。
二、动态规划算法的理解和体会
动态规划核心是拆解复杂问题为重叠子问题,通过存储子问题最优解避免重复计算,依赖最优子结构和重叠子问题两大特性。它不盲目搜索,而是通过填表有序推导,将 “递归的时间消耗” 转化为 “空间存储的代价”,实现高效求解,尤其适用于多阶段决策的最优问题。

浙公网安备 33010602011771号