java版代码,leetcode地址:
1 class Solution { 2 public int maxValue(int[][] grid) { 3 int m = grid.length; 4 int n = grid[0].length; 5 int[][] dp = new int[m][n]; 6 dp[0][0] = grid[0][0]; 7 for(int j=1;j<n;j++) { 8 dp[0][j] = grid[0][j] + dp[0][j-1]; 9 } 10 for(int i=1;i<m;i++) { 11 dp[i][0] = grid[i][0] + dp[i-1][0]; 12 } 13 14 for(int i=1;i<m;i++) { 15 for(int j=1;j<n;j++) { 16 dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]) + grid[i][j]; 17 } 18 } 19 return dp[m-1][n-1]; 20 } 21 }
思路:动态规划。