实践题目:数字三角形

问题描述:

给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。

算法描述

是一个动态规划的题目,

递归求解子问题,采用备忘录,避免重复计算子问题        

m[i][j]= Max{m[i+1][j],m[i+1][j+1]}+m[i][j] i>=j

 

算法时间及空间复杂度分析(要有分析过程)

输入数组O(n*n/2)

递归O(n*n)

所以时间复杂度O(n*n)

借助了另外一个数组,空间复杂度为O(n*n)

心得体会(对本次实践收获及疑惑进行总结)

在上机时,不知为什么总是不对,老师说混杂了两种算法,但

我因为不懂,回来之后也弄了很久,后来就再多弄了一个数组来记录及判断就可以了,但我觉得我好像还是混杂了两种算法的。看来还得多多接触这个算法。

posted on 2018-11-04 22:43  +-  阅读(151)  评论(0编辑  收藏  举报