您的位置:首页 > 职场人生

[leetcode]Minimum Path Sum 最小路径和

2014-03-12 10:11 381 查看
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.

这是个典型的dp问题,先初始化第一行,第一列,因为这两行的点如果到达,那只有一个走法,要不一直往右走,要不一直往下走。

而其他的点确可以有2种走法,那么。。又是2种的问题,要么下要么右,不用dp就是等抽

public int minPathSum(int[][] grid) {
if(grid.length==0) return 0;
int numOfRow=grid.length;
int numOfCol=grid[0].length;
for(int col=1;col<numOfCol;col++){
grid[0][col]=grid[0][col-1]+grid[0][col];
}
for(int row=1;row<numOfRow;row++){
grid[row][0]=grid[row-1][0]+grid[row][0];
}
for(int row=1;row<numOfRow;row++){
for(int col=1;col<numOfCol;col++){
grid[row][col]=grid[row][col]+Math.min(grid[row-1][col],grid[row][col-1]);
}

}

return grid[numOfRow-1][numOfCol-1];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode dp 面试题 java