【LeetCode】64. Minimum Path Sum
2016-10-20 23:58
495 查看
题目:
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[i][j] = min(dp[i-1][j],dp[i][j-1])+grid[i][j];其中初始值为dp[0][0] = grid[0][0]。
代码:
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[i][j] = min(dp[i-1][j],dp[i][j-1])+grid[i][j];其中初始值为dp[0][0] = grid[0][0]。
代码:
class Solution { public: int minPathSum(vector<vector<int>>& grid) { vector<vector<int>> dp; int m = grid.size(); int n = grid[0].size(); if(m == 0&&n == 0) return 0; for(int i = 0;i<m;i++) dp.push_back(vector<int>()); for(int i = 0;i<m;i++) { for(int j = 0;j<n;j++) dp[i].push_back(0); } dp[0][0] = grid[0][0]; if(m == 1&&n == 1) return dp[0][0]; int i = 0,j = 0; for(int i = 0;i<m;i++) { for(int j = 0;j<n;j++) { if(i-1>=0&&j-1>=0) dp[i][j] = min(dp[i-1][j],dp[i][j-1])+grid[i][j]; else if(i-1>=0) dp[i][j] = dp[i-1][j]+grid[i][j]; else if(j-1>=0) dp[i][j] = dp[i][j-1]+grid[i][j]; } } return dp[m-1][n-1]; } };
相关文章推荐
- LeetCode 64. Minimum Path Sum
- leetcode No64. 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]@python 64. Minimum Path Sum
- leetcode64. Minimum Path Sum
- Leetcode解题笔记 64. Minimum Path Sum [Medium] 动态规划
- <LeetCode OJ> 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