- 实践报告
1.1 递归方程式、定义与边界条件
定义:设 dp[i][j]表示从第 i行第 j列元素到三角形底部的最大路径和。
递归方程式:
dp[i][j]=triangle[i][j]+max(dp[i+1][j],dp[i+1][j+1])
边界条件:当 i=n−1时,dp[n−1][j]=triangle[n−1][j](0≤j≤n−1)
1.2 填表法分析
表的维度:二维表,维度为 n×n
(实际有效区域为三角形,第 i行有 i+1个元素)。
填表范围:行范围 i从 n−2到 0,列范围 j 从 0 到 i。
填表顺序:从倒数第二行开始,逐行向上填写;每行内从左到右填写。
原问题的最优值:dp[0][0]
1.3 时间和空间复杂度
时间复杂度:O(n 的2次方)
空间复杂度:O(n)
- 对动态规划算法的理解和体会
动态规划是一种通过分解子问题、利用子问题最优解推导原问题最优解的算法思想。其核心在于识别最优子结构和重叠子问题。动态规划的解题步骤具有通用性:先定义状态,再推导递推公式,最后确定边界条件和填表顺序。空间优化是动态规划的重要技巧,可将空间复杂度从二维优化到一维,在数据规模较大时能显著提升程序的运行效率。
posted @
2025-11-18 23:48
一只大肥羊
阅读(
0)
评论()
收藏
举报