publicintmaxValue(int[][] grid){for(int x =0; x < grid.length; x++){for(int y =0; y < grid[x].length; y++){if(x ==0&& y ==0){continue;}if(x ==0){
grid[x][y]+= grid[x][y -1];continue;}if(y ==0){
grid[x][y]+= grid[x -1][y];continue;}int max =Math.max(grid[x -1][y], grid[x][y -1]);
grid[x][y]+= max;}}return grid[grid.length -1][grid[0].length -1];}
go
funcmaxValue(grid [][]int)int{
xLen, yLen :=len(grid)-1,len(grid[0])-1for x :=0; x <= xLen; x++{for y :=0; y <= yLen; y++{if x ==0&& y ==0{continue}if x ==0{
grid[x][y]+= grid[x][y-1]continue}if y ==0{
grid[x][y]+= grid[x-1][y]continue}
max :=getMax(grid[x-1][y], grid[x][y-1])
grid[x][y]+= max
}}return grid[xLen][yLen]}funcgetMax(a, b int)int{if a > b {return a
}return b
}
题目链接思路需要计算从左上角到右下角最大途径值;并且规定只能向下或者右移动右下角最大值取决于:右下角左边元素值和右下角上边元素值那个大,将较大的值加到右下角值本身就可以了将数组进行循环,记录到当前坐标的最大值;记录时需要判断以下条件:当前列和行都为0时,当前元素就是起点,起点不用累加当前列或者行等于0时,是只能从一个方向到达的当前列和行都不为0时,需要比较当前元素的上边和左边元素,将较大值累加到当前坐标最后将数组中右下角的值返回即可java public int maxV