LeetCode64 Minimum Path Sum
2016-09-20 22:08
429 查看
题目:
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.(Medium)
分析:
矩阵型动态规划,dp[i][j]表示到达i,j位置的。。。。
所以本题中dp[i][j]表示到达grid[i][j]的最小和。dp[i][j] = dp[i -1][j] + dp[i][j - 1];
代码:
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.(Medium)
分析:
矩阵型动态规划,dp[i][j]表示到达i,j位置的。。。。
所以本题中dp[i][j]表示到达grid[i][j]的最小和。dp[i][j] = dp[i -1][j] + dp[i][j - 1];
代码:
class Solution { public: int minPathSum(vector<vector<int>>& grid) { int dp[grid.size()][grid[0].size()]; dp[0][0] = grid[0][0]; for (int i = 1; i < grid.size(); ++i) { dp[i][0] = dp[i - 1][0] + grid[i][0]; } for (int i = 1; i < grid[0].size(); ++i) { dp[0][i] = dp[0][i - 1] + grid[0][i]; } for (int i = 1; i < grid.size(); ++i) { for (int j = 1; j < grid[0].size(); ++j) { dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]; } } return dp[grid.size() - 1][grid[0].size() - 1]; } };
相关文章推荐
- DP问题:leetcode(64) Minimum Path Sum
- LeetCode 64 Minimum Path Sum (数字三角形)
- leetcode64-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(C++ Java Python)
- LeetCode 64 Minimum Path Sum
- Leetcode 64 Minimum Path Sum
- LeetCode 64 Minimum Path Sum--In C++
- [Leetcode 59] 64 Minimum Path Sum
- Minimum Path Sum - LeetCode 64
- leetcode || 64、Minimum Path Sum
- Leetcode-64_. Minimum Path Sum(最小路径和)—动态规划解法+记忆化搜索解法-C++解
- leetcode 64 c语言. Minimum Path Sum
- leetcode-64-Minimum Path Sum
- LeetCode 64 Minimum Path Sum
- LeetCode 64 - Minimum Path Sum