状态表示:dp[i][j]表示到某点的最小路径和
状态转移方程:某点的值等于左侧和上侧的最小值加上左上侧给定数组的值
初始化:多开一行一列防止越界
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int m=grid.size();
int n=grid[0].size();
vector<vector<int>>dp(m+1,vector<int>(n+1,INT_MAX));
dp[0][1]=dp[1][0]=0;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i-1][j-1];
}
}
return dp[m][n];
}
};