题解 | #礼物的最大价值#
礼物的最大价值
https://www.nowcoder.com/practice/2237b401eb9347d282310fc1c3adb134
public int maxValue (int[][] grid) { int m=grid.length; int n=grid[0].length; int[][] dp=new int[m][n];//初始化DP数组 int temp1=0; //计算DP数组的第一列(累加和) for(int i=0;i<m;i++){ temp1=temp1+grid[i][0]; dp[i][0]=temp1; } int temp2=0; //计算DP数组的第一行(累加和) for(int i=0;i<n;i++){ temp2=temp2+grid[0][i]; dp[0][i]=temp2; } //循环计算右下部分 for (int i=1;i<m;i++){ for (int j=1;j<n;j++){ int tp1=dp[i][j-1]+grid[i][j];//从左边来 int tp2=dp[i-1][j]+grid[i][j];//从上边来 dp[i][j]=Math.max(tp1,tp2); } } return dp[m-1][n-1]; }