【发布时间】:2015-09-23 19:37:45
【问题描述】:
给定一个 m*n 大小的网格。网格中的每个块都有一定数量的黄金。
我们从网格的第一列(任何行)开始,我们只能在 3 个方向上移动 - 右、右上(左对角线)和右下(右对角线)。
我们可以从网格中收集的最大黄金数量是多少。
我尝试过使用具有以下递归关系的动态编程
dp[i][j]=max{a[i-1][j+1],a[i][j+1],a[i+1][j+1]} +a[ i][j] 对于 j= 0 到 n-1 并且 dp[i][j]=0 表示 i=m
这会给出正确和最佳的答案吗?
【问题讨论】:
标签: algorithm recursion dynamic-programming