64. Minimum Path Sum
来源:互联网 发布:淘宝买手机店铺推荐 编辑:程序博客网 时间:2024/06/07 11:42
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
这题跟之前的unique paths其实是一回事。都是基本的dynamic programming题。dp就是在于小问题向大问题积累记录,避免直接枚举或者回溯带来的对小问题的重复计算。这一点将会在后续的dp总结博客里解释,此处不做深入。
代码一:
int minPathSum(vector<vector<int>>& grid) { int m = grid.size(); int n = grid[0].size(); vector<vector<int>> minpath(grid); //初始化第一行和第一列 for (int i = 1; i < m; i++) { minpath[i][0] += minpath[i-1][0]; } for (int j = 1; j < n; j++) { minpath[0][j] += minpath[0][j-1]; } // 逐步递进 for (int i = 1; i < m; i++) { for (int j = 1; j < n; j++) { minpath[i][j] = min(minpath[i-1][j], minpath[i][j-1]) + grid[i][j]; } } return minpath[m-1][n-1];}
当然,这题还能再稍微优化一下,就是不用构造完整二维数组,可以用一维滚动数组完成,节约内存。
代码二:
int minPathSum(vector<vector<int>>& grid) { int m = grid.size(); int n = grid[0].size(); vector<int> minpath(n, INT_MAX); minpath[0] = 0; //初始化:第一项为0为了累加方便,其他为INT_MAX因为后面有min操作 for (int i = 0; i < m; i++) { minpath[0] += grid[i][0]; for (int j = 1; j < n; j++) { minpath[j] = min(minpath[j], minpath[j-1]) + grid[i][j]; } } return minpath[n-1];}
1 0
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64.Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64. Minimum Path Sum
- 64.Minimum Path Sum
- Codeforces Round #363 (Div. 1) A. Vacations(dp)
- LeetCode--No.66--Plus One
- mysql之sql_mode
- HTML/CSS学习笔记
- POJ - 1222 EXTENDED LIGHTS OUT(反转问题)
- 64. Minimum Path Sum
- 读书笔记之——数字图像处理与机器视觉(一)
- android中的版本低于运用库定义版本Suggestion: use tools:overrideLibrary="com.github.mikephil.charting.data.realm"
- LeetCode--No.118--Pascal's Triangle
- 设置了texture_compare_mode之后读深度图
- iOS图像处理(7)绘制位图
- iOS图像处理(8)在PDF中绘图
- 70. Climbing Stairs
- iOS图像处理(9)使用CoreImage滤镜