这是一个经典的动态规划问题,通常使用自底向上的方法进行求解。以下是整体的思路:
111 . 从输入中读取金字塔的层数 nnn 。
222 . 创建一个二维数组 aaa 用于存储金字塔的每个结点的值。
333 . 从金字塔底部往上遍历,对于每个结点,计算其子结点(下一层相邻的两个结点)的最大值,并将该值更新到当前结点。
444 . 不断向上遍历,直到达到金字塔的顶部,此时 aaa [ 000 ][ 000 ]存储的就是金字塔的最大和。
555 . 输出 aaa [ 000 ][ 000 ]。
这个算法的关键点在于从底部开始动态规划,每个结点的值更新为其子结点的最大值,最终得到金字塔的最大和。