简单DP问题
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
if(grid.size()==0)
return 0;
int m=grid.size();
int n=grid[0].size();
vector<vector<int>> dp;
vector<int> temp(n,0);
for(int i=0;i<m;i++)
dp.push_back(temp);
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(i-1>=0&&j-1>=0)
dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i][j];
else if(i-1<0&&j-1>=0)
dp[i][j]=dp[i][j-1]+grid[i][j];
else if(i-1>=0&&j-1<0)
dp[i][j]=dp[i-1][j]+grid[i][j];
else
dp[i][j]=grid[i][j];
}
}
return dp[m-1][n-1];
}
};