(1)动态规划
class Solution {
public:
int minPathSum(vector<vector<int>>& g) {
int m=g.size(),n=g[0].size();
vector<vector<int>> v(m+1,vector<int>(n+1,1));
for(int i=1;i<m+1;i++) {
for(int j=1;j<n+1;j++) {
if(i==1 && j==1) v[i][j]=g[i-1][j-1];
else if(i==1 && j>1) v[i][j]=v[i][j-1]+g[i-1][j-1];
else if(i>1 && j==1) v[i][j]=v[i-1][j]+g[i-1][j-1];
else v[i][j]=min(v[i-1][j],v[i][j-1])+g[i-1][j-1];
}
}
return v[m][n];
}
};