(一)题目描述
(二)思想方法
动态规划:
从原点到达(i, j)的最小路径等于 :原点到达(i-1, j)最小路径与到达(i, j-1)最小路径中的最小值。
dp[i]=grid[i][j]+min{dp[i-1],dp[i]};
(三)代码实现
class Solution {
public:
int minPathSum(vector<vector<int>>& grid)
{
int dp[grid.size()];
dp[0] = grid[0][0];
for(int i=1; i<grid.size(); i++) dp[i] = grid[i][0]+dp[i-1];
for(int j=1; j<grid[0].size(); j++)
for(int i=0; i<grid.size(); i++)
dp[i] = (i==0 ? dp[i] :min(dp[i], dp[i-1])) + grid[i][j];
return dp[grid.size()-1];
}
};