Leetcode64 minimum path sum
来源:互联网 发布:mac卸载梦幻西游 编辑:程序博客网 时间:2024/06/05 02:28
最近在学习DP 很容易的想到了下面的解法
我的解法
int minPathSum(vector<vector<int> >& grid) { //handle exception if (grid.empty()) return 0; //grid is not null int m = grid.size(); int n = grid[0].size(); vector<vector<int> > dp(m, vector<int>(n)); //init dp table //init 0,0 pos dp[0][0] = grid[0][0]; //init 第一横行 for (int i = 1; i < m; i++) { dp[i][0] = dp[i - 1][0] + grid[i][0]; } //init 第一纵列 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];}
至此AC
dp[i][j] = min(dp[i - 1][j], dp[i][j - 1])
+ grid[i][j];
这个递推式比较关键,ij位置上的minimum path由上方和左方的最小值 加上 grid表中本格的数值相加而成.
贪心的反例(为什么不能用贪心)
看这个表格 贪心会导致从0,0 走到 0, 1 然后一定会经过100
而正确走法应当走1, 0
所以这题不能用贪心
优化
这题空间复杂度上可以优化
可以将dp表从二维节约成一维, 在循环中更新表即可, 最后返回所需函数值即可.
0 0
- LeetCode64:Minimum Path Sum
- Leetcode64 Minimum Path Sum
- [leetcode64]Minimum Path Sum
- LeetCode64. Minimum Path Sum
- Leetcode64 minimum path sum
- leetcode64. Minimum Path Sum
- leetcode64. Minimum Path Sum
- Leetcode64. Minimum Path Sum
- LeetCode64 Minimum Path Sum
- LeetCode64. Minimum Path Sum题解
- LeetCode64——Minimum Path Sum
- leetcode64-Minimum Path Sum(最小路径和)
- 【LeetCode64 Minimum Path Sum】动态规划计算路径
- LeetCode: Minimum Path Sum
- LeetCode Minimum Path Sum
- LeetCode : Minimum Path Sum
- [Leetcode] Minimum Path Sum
- Minimum Path Sum
- 犀利的异或求解
- 通过RMAN将数据库恢复到同类机异机
- Orcle存储过程与存储函数简单语法与java调用
- 单编后生成apk,使用adb安装apk
- 无向图邻接表的深度优先遍历
- Leetcode64 minimum path sum
- hdfs和hbase在linux中的一些基本操作
- Linux 五个最牛视频编辑软件
- hdu1816Get Luffy Out *
- 智慧北京:新闻菜单中ViewPager的touch处理
- 把程序自己关掉和程序进入后台,远程推送的 区别
- MySQL学习(一)
- c语言篇之字符串
- java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Integerjava.lang.Clas