礼物的最大价值
1.动态规划问题
这种求最大值的我们一般可以用动态规划求解。我们想清楚设置一个矩阵dp[m][n]的矩阵。每个元素代表的值则表示到达这个位置的最大值。
那么dp[0][0] 就为1,dp[0][1] 为 4 dp[0][2] 为3
dp[1][0] 就为2,dp[1][1] 为 多少呢?
我们只需要判断他的左边(dp[i][j-1])和上边(dp[i-1][j])谁的值最大。那么表达式就为
dp[i][j] = max(dp[i][j-1],dp[i-1][j])+arr[i][j]。
那么问题就来了,因为0-1=-1超过数组的下界,所以我们dp数组可以从1,1开始。
完整代码:
结果:



浙公网安备 33010602011771号