1.1
递归方程式:dp[i][j] == a[i]][j] + max(dp[i+1][j], dp[i+1][j+1])
定义:设数字三角形的第 i 行第 j 列的元素为 a[i][j](行、列均从 1 开始编号),dp[i][j] 表示从第 i 行第 j 列元素出发,到达三角形底部的最大路径和
含义:从第i行第j列元素出发的最大路径和 = 当前元素值 + 从其左下方(i+1,j)或从其右下方(i+1,j+1)出发的较大值
边界条件:当i=n,即最后一行时,路径上只有自身元素,因此dp[n][j] = a[n]j
1.2
表的维度为:n*n
填表范围
行:i从n递减到1
列:对于第i行,j从1到i
填表顺序:从下往上填写,同一行从左到右填写
最优值:表的第一个元素dp[1][1]
1.3
时间复杂度:填表过程需要计算每个dp[i][j]的值,总元素数量为1+2+...+n = n*(n+1) / 2 个,所以时间复杂度为O(n^2)
空间复杂度:填表需要用到二维数组dp,空间复杂度为O(n^2)