矩阵上寻找最短路径 Minimum Path Sum
来源:互联网 发布:数据库管理系统dbms是 编辑:程序博客网 时间:2024/05/16 10:15
题目源自于leetcode。图问题。
题目: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.
思路:矩阵寻路问题。在某一个位置只有两种选择,向下或向右。在最右一列时只可以向下。在最下一行时是可以向右。要求在最左上角时到最右下角的最短长度。存在最优子问题:对中间的每个点,到最右下角的最短长度。并且子问题影响到了最终问题,并且是在相邻子问题中取最优。所以可以用动态规划来解,先从最小的子问题开始求解,逐步扩展到最大的问题(最左上角)。
注意:
1、二维数组的表示方法有vector,静态二维数组,动态二维数组。这里选用的是C++形式的动态二维数组。
代码:
class Solution {public: int minPathSum(vector<vector<int> > &grid) { int row = grid.size(); if(row == 0) return 0; int col = grid[0].size();int i,j; int **value = new int* [row]; //动态二维数组的申请for(i=0;i<row;i++)value[i] = new int[col];value[row-1][col-1] = grid[row-1][col-1];for(i=row-2;i>=0;i--)value[i][col-1] = value[i+1][col-1] + grid[i][col-1];for(i=col-2;i>=0;i--)value[row-1][i] = value[row-1][i+1] + grid[row-1][i];for(i=row-2;i>=0;i--)for(j=col-2;j>=0;j--){if(value[i+1][j] < value[i][j+1])value[i][j] = value[i+1][j] + grid[i][j];elsevalue[i][j] = value[i][j+1] + grid[i][j];}int result = value[0][0];for(i=0;i<row;i++)//动态二维数组的释放 delete[] value[i];delete[] value;return result; }};
- 矩阵上寻找最短路径 Minimum Path Sum
- Minimum Path Sum 矩阵最短路径和@LeetCode
- 寻找矩阵中最短路径 Minimum Path Sum
- Minimum Path Sum 求方格总从左上到右下的最短路径 简单动态规划
- leetcode解题之62&63. Unique Paths ||64. Minimum Path Sum java版(路径(最短)可达)
- 寻找最短路径
- 矩阵最短路径
- vtkDijkstraGraphGeodesicPath在曲面上寻找最短路径的应用
- 寻找最短路径BFS
- 矩阵最短路径和
- Minimum Path Sum 最小路径和
- [leetcode]Minimum Path Sum 最小路径和
- Leetcode:Minimum Path Sum 最小路径和
- LinCode Minimum Path Sum 最小路径和
- leetcode64-Minimum Path Sum(最小路径和)
- 64. Minimum Path Sum 路径最小总和
- Minimum Path Sum 最小值的路径
- lintcode minimum-path-sum 最小路径和
- Linux 下挂载硬盘的 方法
- 使用 DelegatingActionProxy
- 删除数组指定元素
- IAR sprintf 浮点 在UCOS 总格式化成0.0的问题
- hdu2569
- 矩阵上寻找最短路径 Minimum Path Sum
- 高配夫人低配老公
- 让ios 7的状态条恢复原样
- xenapp6.5 浏览器首次登录插件下载问题解决
- 参考网站
- Spring事务传播特性实例解析
- 【cocos2d-x】关于cocos2d-x解析json的一个类,jsonbox的使用方法资料
- Android环境变量的设置(详细图解版)
- struts2 json传递对象