题目:
解答:
依然是类似动态规划的思想,LeetCode最佳答案使用自己开数组存储,运行速度会更快。我的解法使用vector内原地存储记录,速度好像是要慢一些,但是不需要使用额外空间,也算比较满意了。
代码:
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int row = grid.size(), col = grid[0].size();
for(int i = 1;i < col; ++i)
grid[0][i] += grid[0][i-1];
for(int i = 1;i < row; ++i)
grid[i][0] += grid[i-1][0];
for(int i = 1;i < row; ++i)
for(int j = 1;j < col; ++j){
int tmp = min(grid[i-1][j], grid[i][j-1]);
grid[i][j] += tmp;
}
return grid[row-1][col-1];
}
};
更新会同步在我的网站更新(https://zergzerg.cn/notes/webnotes/leetcode/index.html)