一、题目内容
二、题解
解法1:
思路
动态规划
- i=0,j=0
- dp[i][j] = gift[i][j]
- i=0,j!=0
- dp[i][j] = dp[i][j-1] + gift[i][j]
- i!=0,j=0
- dp[i][j] = dp[i-1][j] + gift[i][j]
- i!=0,j!=0
- dp[i][j] = Max{ dp[i][j-1] , dp[i-1][j] } + gift[i][j]
代码
class Solution {public int maxValue(int[][] grid) {int m = grid.length;int n = grid[0].length;for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (i == 0 && j == 0) {continue;}if (i == 0) {grid[i][j] += grid[i][j - 1];} else if (j == 0) {grid[i][j] += grid[i - 1][j];} else {// i!=0 j!=0grid[i][j] = Math.max(grid[i - 1][j], grid[i][j - 1]) + grid[i][j];}}}return grid[m - 1][n - 1];}}
