原题
简单动态规划
重点是:grid[i][j] += min(grid[i][j - 1], grid[i - 1][j]);
class Solution {
public:
int minPathSum(vector<vector<int>> &grid) {
for (int i = 1; i < grid.size(); i++) {
grid[i][0] += grid[i - 1][0];
}
for (int i = 0; i < grid.size(); i++) {
for (int j = 1; j < grid[0].size(); j++) {
if (i == 0) {
grid[i][j] += grid[i][j - 1];
}
else {
grid[i][j] += min(grid[i][j - 1], grid[i - 1][j]);
}
}
}
return grid[grid.size() - 1][grid[0].size() - 1];
}
};
网友评论