[leetcode 64] Minimum Path Sum
来源:互联网 发布:学术ppt知乎 编辑:程序博客网 时间:2024/04/29 19:28
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.
思路:dp, 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 res; const int m = grid.size(); if (m < 1) { return res; } const int n = grid[0].size(); int dp[m][n]; 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]; } dp[1][1] = 1; 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]; }};
在网上看到了大神的解法,将二维dp转为了一维。因为在计算dp[i][j]的时候我们要用的数据也只是dp[i-1][j] 和dp[i][j-1]。所以可以节省空间。
class Solution {public: int minPathSum(vector<vector<int> > &grid) { int res; const int m = grid.size(); if (m < 1) { return res; } const int n = grid[0].size(); int dp[n]; fill(dp, dp+n, INT_MAX); dp[0] = 0; for (int i = 0; i < m; i++) { dp[0] += grid[i][0]; for (int j = 1; j < n; j++) { //左边的dp[j]相当于二维中的d[i][j],右边的dp[j]相当于dp[i-1][j],右边的dp[j-1]相当于dp[i][j-1];自己动手写2*n的就能看出来了 dp[j] = min(dp[j-1], dp[j]) + grid[i][j]; } } return dp[n-1]; }};
0 0
- LeetCode 64: Minimum Path Sum
- [leetcode 64] Minimum Path Sum
- [LeetCode 64]Minimum Path Sum
- leetcode || 64、Minimum Path Sum
- Minimum Path Sum - LeetCode 64
- Minimum Path Sum leetcode 64
- leetcode-64-Minimum Path Sum
- Leetcode 64(Minimum Path Sum)
- LeetCode(64) Minimum Path Sum
- Leetcode #64 Minimum Path Sum
- leetcode 64: Minimum Path Sum
- Leetcode#64||Minimum Path Sum
- LeetCode 64: Minimum Path Sum
- 【LEETCODE】64-Minimum Path Sum
- 【leetcode】【64】Minimum Path Sum
- LeetCode 64 - Minimum Path Sum
- LeetCOde 64 Minimum Path Sum
- leetcode-64:Minimum Path Sum
- for(;;)的解释
- Linux命令(四)——文件查看与文件权限、属性设置
- 【机房重构】——存储过程和触发器
- Hibernate中使用Threadlocal创建线程安全的Session
- UFT12.02安装包
- [leetcode 64] Minimum Path Sum
- Ubuntu(Linux)系统下发热及电源管理得问题
- WSAEventSelect模型的端口映射。 另外一种WSAEventSelect模型的端口映射。WSAEventSelect模型的端口映射。 另外一种WSAEventSelect模型的端口映射。
- LEETCODE: Valid Palindrome
- 新年,一切都是新的开始!第一篇IT博文,坚持下去!
- Julia之BloomFilters的使用
- 代理设计模式
- Ubuntu下使用记录
- hrbust2214 Judge