动态规划,矩阵最小路径和
来源:互联网 发布:php身份证实名认证接口 编辑:程序博客网 时间:2024/04/23 23:20
题目描述
有一个矩阵map,它每个格子有一个权值。从左上角的格子开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。
给定一个矩阵map及它的行数n和列数m,请返回最小路径和。
动态规划求解过程.
假定给定一个N*M的矩阵 假定N等于4 M等于4
1 2 3 4
4 8 3 2
6 1 4 5
7 3 7 8
现在生成一个大小为N*M的矩阵dp,dp[i][j]的含义为从(0,0)点到(i,j)点的最小路径
显然 第一行的路径值就为从0,0点到i,j每一点值的和
1 3 6 10
1
5
11
18
置dp[0][0] = 矩阵值[0][0]; 对于第一行来说dp[i][0] = dp[i-1][0]+矩阵值[i][0];对于第一列来说 dp[0][i] = dp[0][i-1]+矩阵值[0][i];
对于除第一行第一列之后其他的位置有dp[i][j] = min(dp[i-1][j],dp[i][j-1])+矩阵值[i][j];
至此,状态转移方程求解完毕
class MinimumPath {public: int getMin(vector<vector<int> > juzhen, int n, int m) { vector<vector<int>>dp(n,vector<int>(m,0)); dp[0][0] =juzhen[0][0]; for (int i=1; i<n; ++i) dp[i][0] = dp[i-1][0]+juzhen[i][0]; for (int i=1; i<m; ++i) dp[0][i] = dp[0][i-1]+juzhen[0][i]; for(int i=1;i<n;++i){ for (int j=1; j<m; ++j) { dp[i][j] = min(dp[i][j-1],dp[i-1][j])+juzhen[i][j]; } } return dp[n-1][m-1]; }};
1 0
- 动态规划,矩阵最小路径和
- 动态规划--矩阵最小的路径和
- 动态规划--矩阵最小路径和
- 动态规划-----矩阵最小路径和
- 递归+动态规划 矩阵最小路径和
- 动态规划3:矩阵最小路径和问题
- 动态规划——矩阵最小路径和
- 动态规划6:台阶问题和矩阵最小路径问题
- 递归与动态规划---矩阵的最小路径和
- 动态规划之矩阵的最小路径和
- 动态规划---三角矩阵最小路径
- java动态规划最小路径和
- Lintcode-动态规划-最小路径和
- 动态规划(三)暴力递归的优化之路——数字矩阵的最小路径和
- 动态规划路径最小问题
- 矩阵最小路径和
- 矩阵最小路径和
- LeetCode -- Triangle 路径求最小和( 动态规划问题)
- 泛型#泛型接口#
- 设计模式中类的关系
- python2.7;解决中文无法正常显示问题
- 全排列算法的全面解析
- 安装pygraphviz遇到的问题解决办法。
- 动态规划,矩阵最小路径和
- 设计模式-4-单例模式
- One hot encoding
- React Native 解决iOS上键盘遮挡TextInput问题
- 1009: C语言程序设计教程(第三版)课后习题5.7
- 自定义控件
- LeetCode笔记:226. Invert Binary Tree
- tsiLdekniLaniedoNeteleD.237
- [leetcode] 317. Shortest Distance from All Buildings 解题报告