第三次作业
实践报告
1.1 根据最优子结构性质,列出递归方程式,说明方程式的定义、边界条件
(1)递归方程式:a[i][j]=a[i][j]+max(a[i+1][j],a[i+1][j+1])
(2)定义:设 a[i][j] 表示从第 i 行第 j 列出发到达底部的最大路径和,从 (i, j) 出发到底部的最大路径和,等于当前位置的值加上从下一行左下方 (i+1, j) 或右下方 (i+1, j+1) 出发的最大路径和中的较大值。
(3)边界条件:当 i=n-1 时,a[n-1][j] 保持不变。
1.2 给出填表法中表的维度、填表范围和填表顺序。以及原问题的最优值是哪个表格元素
(1)表的维度:a[100][100]
(2)填表范围:i 从 n-1 到 0,j 从 0 到 i
(3)填表顺序:从下到上,从左到右
(4)最优值:a[0][0]
1.3 分析该算法的时间和空间复杂度
(1)时间复杂度:双重循环,外层循环 n 次,内层循环最多 n 次,时间复杂度为 O(n*n)。
(2)空间复杂度:直接在 a[100][100] 上进行计算,没有使用额外的存储空间,空间复杂度为 O(1)。
你对动态规划算法的理解和体会
动态规划通过识别重叠子问题和最优子结构,并利用表格存储中间结果,将指数级复杂度的暴力解法优化为多项式级复杂度的强大算法范式,核心在于巧妙的状态定义和高效的状态转移。
浙公网安备 33010602011771号