leetcode 64. Minimum Path Sum
2016-04-15 20:28
260 查看
题意
在一个矩阵中只能向右和向下走,问从起点到终点的路径上的数之和的最小值为多少题解
使用动态规划。一个结点的最短路径和 = 它上边的结点和左边的结点中和较小的值 + 当前结点的值dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
代码
class Solution { public: int minPathSum(vector<vector<int>>& grid) { int m = grid.size(), n = grid[0].size(); int dp[m] ; dp[0][0] = grid[0][0]; for(int i = 1; i < m; i++) dp[i][0] = dp[i - 1][0] + grid[i][0]; for(int j = 1; j < n; j++) dp[0][j] = dp[0][j - 1] + grid[0][j]; for(int i = 1; i < m; i++) for(int j = 1; j < n; j++) dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]; return dp[m - 1][n - 1]; } };
相关文章推荐
- matlab 保存运行结果 获取load进来的数据 {}符号的意义
- 机器学习:weka中添加自己的分类和聚类算法
- Linux服务器登陆安全设置,并使用ssh keys登陆
- 非常好用的iOS正则表达式
- 博客第一天
- 湖南集训总结
- Cloudera 安装概述
- Unity优化总结
- 穷举法之韩信点兵
- 浅析进程地址空间
- Python3.5.1 pyopengl第一个例子
- Usaco-1.4.2-Arithmetic Progressions
- 【USACO题库】3.2.6 Sweet Butter香甜的黄油
- js事件的相关收集
- 2. Python语言基本语法
- Light OJ 1296 - Again Stone Game (博弈sg函数递推)
- iOS小技巧 - 获取文字的宽度(iOS6与iOS7的方法不同)
- Android 四大组件(Activity、Service、BroadCastReceiver、ContentProvider)
- win8系统更新后Apache报错
- 搜索算法3之1005