
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int m = grid.size(), n = grid[0].size();
vector<vector<int>> dp(m,vector<int>(n));
dp[0][0]=grid[0][0];
//dp[i][j] = min(dp[i][j-1],dp[i-1][j]);
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(i==0&&j==0) continue;
int left = j-1>=0?dp[i][j-1]:INT_MAX;
int up = i-1>=0?dp[i-1][j]:INT_MAX;
dp[i][j] = min(left,up) + grid[i][j];
}
}
return dp[m-1][n-1];
}
};

539

被折叠的 条评论
为什么被折叠?



