第三次作业
1、数学三角形问题分析
1.1 问题结构分析:最优解是什么
在这道题目中,给定了一个由 n行数字组成的数字三角形。要求我们计算出从三角形的顶点到底部的一条路径,使得路径经过的数字总和最大。我们只能从某个数字走到下方相邻的数字(左斜线或右斜线方向)。
最优解:从顶部到底部的一条路径,使得路径上经过的数字和最大
最优值:路径和的最大值
1.2求解递推方程式
dp[i][j]=max(dp[i-1][j-1],dp[i-1][j])+triangle[i][j]
初始值:
dp[0][0]=triangle[0][0]
边界条件
如果是最左边的元素(j == 0),只能从右上方到达:
dp[i][0] = dp[i-1][0] + triangle[i][0]
如果是最右边的元素(j==i),只能从左上方到达:
dp[i][j] = dp[i-1][j-1] + triangle[i][j]
1.2填表法分析
维度:二维表格dp,维度为n*n
范围:1≤j≤i,1≤i≤n
顺序:从底部向上,每行内部按从左到右顺序填充
最优值:dp[0][0]
1.3时间、空间复杂度
均为O(n^2)
2、对动态规划算法的理解体会
动态规划不仅仅是一个算法工具,更是一种强大的问题建模和求解范式。其核心思想就是化繁为简,将问题拆分成子问题,避免重复计算。它教会我们如何将复杂问题系统性地分解,并通过存储中间结果来高效求解。
浙公网安备 33010602011771号