Minimum Path Sum最小路径和算法详解
来源:互联网 发布:论坛源码下载 编辑:程序博客网 时间:2024/06/13 12:15
问题详见: Minimum Path Sum
该题也是一个动态规划题,题目让我们求解一个给定的二维数组中从左上角到右下角最短的路径和。题目描述如下:
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.
解题思路:
由题可知,如果只有一行或者一列,直接将所有元素相加即为最短路径和。然后动态方程是sum[i][j] = min(sum[i - 1][j], sum[i][j - 1]) + grid[i][j];
,即要么从左边,要么从上边到达遍历到的点。整个算法复杂度为
class Solution {public: int minPathSum(vector<vector<int>>& grid) { int m = grid.size(), n = grid[0].size(); vector<vector<int> > sum(m, vector<int>(n, grid[0][0])); for (int i = 1; i < m; i++) sum[i][0] = sum[i - 1][0] + grid[i][0]; for (int j = 1; j < n; j++) sum[0][j] = sum[0][j - 1] + grid[0][j]; for (int i = 1; i < m; i++) for (int j = 1; j < n; j++) sum[i][j] = min(sum[i - 1][j], sum[i][j - 1]) + grid[i][j]; return sum[m - 1][n - 1]; }};
其提交运行结果如下:
阅读全文
0 0
- Minimum Path Sum最小路径和算法详解
- Minimum Path Sum 最小路径和
- [leetcode]Minimum Path Sum 最小路径和
- Leetcode:Minimum Path Sum 最小路径和
- LinCode Minimum Path Sum 最小路径和
- leetcode64-Minimum Path Sum(最小路径和)
- lintcode minimum-path-sum 最小路径和
- 最小路径和—Minimum Path Sum
- 【LeetCode-面试算法经典-Java实现】【064-Minimum Path Sum(最小路径和)】
- LeetCode | Minimum Path Sum(最小路径和)
- LeetCode OJ 之 Minimum Path Sum (最小路径和)
- 动态规划--最小路径和(Minimum Path Sum)
- Leetcode 64. Minimum Path Sum 最小路径和 解题报告
- LeetCode 64. Minimum Path Sum(最小路径和)
- leetcode 64. Minimum Path Sum-最小路径和|动态规划
- Minimum Path Sum'二维数组最小路径和
- 110.Minimum Path Sum-最小路径和(容易题)
- 64. Minimum Path Sum--找路径最小和
- 《学习opencv》第四章第三题(全)
- 简易散列表实现电话号码查询系统
- 学习 FutureTask
- spring中lazy-init详解
- c/c++基本输入输出学习总结
- Minimum Path Sum最小路径和算法详解
- Java-数据类型及转换
- JDBC连接数据库
- Yii2 Class not found、命名空间、找不到类的解决办法
- maven 中 配置阿里云的maven仓库
- 2017考研复试选导师,最该权衡的7个方面
- My_learningSummary
- setDisplayHomeAsUpEnabled
- ELK 日志分析系统(五)