算法第3章上机实践报告

1.实践题目

7-1 数字三角形

2.问题描述

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

3.算法描述

①两个二维数组,一个存放三角形,一个存放最大数字总和。
 
②从下至上在a[n-1][i]+a[n][i]和a[n-1][i]+a[n][i+1]中将较大的存放在max[n-1][i]中。
 
③max[1][1]是结果。

4.算法时间及空间空间复杂度分析

两个for执行次数为n(n-1)/2,因此时间复杂度为O(N^2)

程序执行所需要的空间为n^2/2,因此空间复杂度为O(N^2)

5.心得体会

本次实践深化了我对于动态规划的理解,刚开始觉得完全没有头绪,虽然很了很多遍书还是觉得无从下手。后来和同学讨论之后,觉得不清楚的地方是没有把公式演练出来。后来写出公式之后问题就很快得到了解决。
posted @ 2018-11-11 23:31  李胤霖  阅读(105)  评论(0编辑  收藏  举报