最大的礼物价值
Posted ohana!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大的礼物价值相关的知识,希望对你有一定的参考价值。
题目内容:
解题代码:
class Solution
public int maxValue(int[][] grid)
/*
1.对于这道题来讲,本质上就是寻找二维数组路径最大和
2.起点只能是grid[0][0],终点只能是grid[m - 1][n - 1](就以本题来说的m和n,意思一样)
3.对于每走的一格来说,这一步要么是上面或者左面来的
4.针对于本题条件,我们从不断更新每个位置元素最大和来入手(最大与最大的相加那必然是最大的)
5.最重要的一步(1)(2),这么做就是为了,先将边界处理好
关于边界,对边界进行求和处理,这是为了,当进行循环计算时,如果恰好边界是正确顺序的时候,拿到的是和
6.最后,双层循环,将数组其余的每个元素进行更新,确保每个位置元素都是当前位置最大的
7.最后一个元素结束后,直接返回,他就是最大的和
*/
int m = grid.length;
int n = grid[0].length;
//(1)
for(int i = 1;i < n;i++)
grid[0][i] = grid[0][i] + grid[0][i - 1];
//(2)
for(int i = 1;i < m;i++)
grid[i][0] = grid[i][0] + grid[i - 1][0];
for(int i = 1;i < m;i++)
for(int j = 1;j < n;j++)
grid[i][j] = grid[i][j] + Math.max(grid[i][j - 1],grid[i - 1][j]);
return grid[m - 1][n - 1];
以上是关于最大的礼物价值的主要内容,如果未能解决你的问题,请参考以下文章