
一共考虑四种情况:上和左都是边界,即起点;上是边界;左是边界;上左都不是边界
class Solution {
public:
int minPathSum(vector<vector<int>>& grid){
if(grid.size() == 0){
return 0;
}
int m = grid.size();
int n = grid[0].size();
for(int i = 0; i < m; ++i){
for(int j = 0; j < n; ++j){
if(i == 0 && j == 0){
continue;
}
else if(i == 0){
grid[i][j] = grid[i][j] + grid[i][j-1];
}
else if(j == 0){
grid[i][j] = grid[i][j] + grid[i-1][j];
}
else{
grid[i][j] = min(grid[i-1][j], grid[i][j-1]) + grid[i][j];
}
}
}
return grid[m-1][n-1];
}
};
本文介绍了一种使用动态规划解决二维网格中从左上角到右下角的最小路径和问题的方法。通过逐步更新网格中每个点的最小路径和,最终得到目标点的最小路径和。
631

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



