摘要: 描述:给定一个由n 行数字组成的数字三角形(例如下图)。输出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。(红色路径表示最优路径,结果为9+3+8+7+5 = 32)算法基本思路:显然用一个二维数组rec[0..n-1][0..n-1]可以保存该三角形作为输入(用二维数组对角线以下的位置保存三角形)。对于任意rec[i][j],我们可以定义一个表m[i][j] 来表示以rec[i][j]作为当前路径的终点所得到的最优值。对于m[i][j],要到达这个数字,必须经过前面的某个数字,可以通过计算前面的最优解来构造m[i][j]的最优解。求解m[i][j]的最优解,可以通过子集的最优解构造 阅读全文
posted @ 2013-12-08 18:52 7hat 阅读(960) 评论(1) 推荐(0) 编辑