题解 | #礼物的最大值#

礼物的最大价值

http://www.nowcoder.com/practice/2237b401eb9347d282310fc1c3adb134

由于只能方向向右或者向下,因此第m行第n列的值只能来自于m-1行n列或者m行n-1列再加上grid[m][n],所以可知maxSum[i][j] = Math.max(maxSum[i - 1][j], maxSum[i][j - 1]) + grid[i - 1][j - 1];

 public int maxValue (int[][] grid) {
        // write code here
        int m = grid.length, n = grid[0].length;
        int[][] maxSum = new int[m + 1][n+ 1];
        for(int i = 1; i <= m; i++)
            for(int j = 1; j <= n; j++){
                maxSum[i][j] = Math.max(maxSum[i - 1][j], maxSum[i][j - 1]) + grid[i - 1][j - 1];
            }
        return maxSum[m][n];
    }
全部评论

相关推荐

4 收藏 评论
分享
牛客网
牛客企业服务