剑指 Offer 47. 礼物的最大价值
思路:和最短路径 等类似。每个位置的状态有左边的位置和上边的位置转移而来,再加上自己的值
f
[
i
]
[
j
]
=
m
a
x
(
f
[
i
−
1
]
[
j
]
,
f
[
i
]
[
j
−
1
]
)
+
w
(
i
,
j
)
f[i][j] = max(f[i-1][j],f[i][j-1]) + w(i,j)
f[i][j]=max(f[i−1][j],f[i][j−1])+w(i,j)
class Solution {
public int maxValue(int[][] grid) {
int r = grid.length;
int c = grid[0].length;
int[][] f = new int[grid.length + 1][grid[0].length +1];
for(int i = 1; i <= r; i++){
for(int j = 1 ; j <= c ; j++){
f[i][j] = Math.max(f[i-1][j],f[i][j-1])+grid[i-1][j-1];
// System.out.print(f[i][j] + " ");
}
}
return f[r][c];
}
}