第27天--算法(Leetcode 剑指Offer 47)


剑指Offer 47

public int maxValue(int[][] grid) {         int M = grid.length;         int N = grid[0].length;         int dp[][] = new int[M][N];         dp[0][0] = grid[0][0];         for(int j =  1;j < N;j ++) {             dp[0][j] = dp[0][j - 1] + grid[0][j];         }         for(int i = 1;i < M;i ++) {             dp[i][0] = dp[i - 1][0] + grid[i][0];         }         for(int i = 1;i < M;i ++) {             for(int j = 1;j < N;j ++) {                 int p1 = dp[i][j - 1] + grid[i][j];                 int p2 = dp[i - 1][j] + grid[i][j];                 dp[i][j] = Math.max(p1,p2);             }         }         return dp[M - 1][N - 1];     }