【leetcode】第64题 Minimum Path Sum 题目+解析+JAVA代码

来源:互联网 发布:地图开疆 知乎 编辑:程序博客网 时间:2024/05/03 14:18

【题目】

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.

Note: You can only move either down or right at any point in time.

【解析】

这道题和上两题还是很相似的。一个m*n的网格,里面填有正数,找一条从左上到右下的路径,使路径上的数字和最小(只能向下和向右移动)。这题还是用动态规划解答。

【代码】

public int minPathSum(int[][] grid) {        int m=grid.length;        int n=grid[0].length;        for(int i=m-2;i>=0;i--){            grid[i][n-1]+=grid[i+1][n-1];        }        for(int i=n-2;i>=0;i--){            grid[m-1][i]+=grid[m-1][i+1];        }        for(int i=m-2;i>=0;i--){            for(int j=n-2;j>=0;j--){                grid[i][j]=grid[i][j]+Math.min(grid[i][j+1],grid[i+1][j]);            }        }        return grid[0][0];    }


原创粉丝点击