1. 实践报告(按照动态规划法的求解步骤分析作业题目 “数字三角形” )
    1.1 递归方程式(定义与边界)
    设:dp[i][j]表示从第i行第j列元素出发,到达底部的路径数字之和的最大值;a[i][j]表示第i行第j列元素。
    递归方程式:dp[i][j] = a[i][j] + max(dp[i+1][j], dp[i+1][j+1])。
    边界条件:当到达末行(i=n)时,仅包含自身元素,即:dp[n][j] = a[n][j] (1<=j<=n)。
    1.2 填表法中表的维度、范围和顺序,以及最优值是哪个表格元素
    维度:二维表格dp,维度为n*n (dp[n][n],n为三角形行数)。
    范围:1≤i≤n,1≤j≤i。
    顺序:从底部向上,每行内部按从左到右顺序填充。
    最优值:dp[1][1]。
    1.3 分析该算法
    时间复杂度:O(n^2)。
    空间复杂度:O(n^2) (可优化为O(n))。
  2. 你对动态规划算法的理解和体会
    动态规划其核心思想是 “拆分问题、存储子问题解、避免重复计算”,可以看出本质是 “以空间换时间”。包含两个关键特性:一是最优子结构,原问题的最优解包含子问题的最优解;二是重叠子问题,会重复计算大量相同子问题(动态规划通过表格存储子问题解,有效避免了重复计算)。动态规划最关键的步骤是根据最优子结构推导出可行的递归方程式,并明确边界条件。不过,有时候要找到确切可行的子问题的状态定义是比较困难的。
posted on 2025-11-16 14:52  paidaxing*  阅读(5)  评论(0)    收藏  举报