您的位置:首页 > 其它

LeetCode Minimum Path Sum

2014-03-22 11:13 369 查看
题目:

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.
class Solution {
public:
//DP
int minPathSum(vector<vector<int> > &grid) {
int m = grid.size();
int n = grid[0].size();
if(m == 0 || n == 0)
return 0;
//初始化
for(int j = 1; j < n; j++)
grid[0][j] += grid[0][j-1];
for(int i = 1; i < m; i++)
grid[i][0] += grid[i-1][0];
for(int i = 1; i < m; i++)
for(int j = 1; j < n; j++)
grid[i][j] += min(grid[i][j-1], grid[i-1][j]);
return grid[m-1][n-1];
}
private:
int min(int &a, int &b) {
return a < b? a : b;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: