您的位置:首页 > 其它

leetcode---minimum-path-sum---dp

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