覆盖的最大苹果数量

时间:2014-02-14 06:48:38

标签: graph-algorithm

在某些点上放置了一个带有苹果(仅限一个苹果)的矩阵。给出了源点和目的点。我们必须找到一个从源到目的地的路径,它具有最大数量的苹果。

解决问题的方法或算法应该是什么

1 个答案:

答案 0 :(得分:0)

您可以使用dynamic programming .

解决此问题

创建DP[i][j] finds maximum apples you can get from (0,0) to (i,j)的二维数组 现在,假设您正向或向下行进,因此从(i,j)开始,您可以移至(i+1,j)(i,j+1)

recurrence relationdp[i][j] = max(dp[i-1][j] , dp[i][j-1]) [for i,j = 1 to n-1]

您还需要在i=0j=0时跟踪基本情况 最后dp[n-1][n-1]给出了最大的苹果。

时间复杂度:O(n*n)以及空间复杂度 但我们可以优化空间,因为我们只需查找当前行的前一行(i-1)i。因此,空间可以降至O(n)

希望它可以帮到你!