Minimum Path Sum
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.
解题思路:
思路跟前面62,63一样,就是现在是改成统计权值最小路径了。到达每个节点之前都有两个节点(上节点,左节点),先获取到达这两个节点的最小权值和,在比较得到其中的较小值,加上当前节点的权值,就是到达当前节点的最小权值。
public class Solution {
public int minPathSum(int[][] grid) {
if(grid == null || grid.length == 0 || grid[0].length == 0)
return 1;
int m = grid.length;
int n = grid[0].length;
int[] num = new int[n];
int result = 0;
for(int i = 0;i<m;i++)
{
num[0] += grid[i][0];
for(int j = 1;j<n;j++)
{
if(i == 0)
num[j] = num[j-1] + grid[i][j];
else
{
int minnum = Math.min(num[j-1], num[j]);
num[j] = minnum + grid[i][j];
}
}
}
return num[n-1];
}
}