leetcode-64. Minimum Path Sum
2017-05-21 20:26
429 查看
解题思路:
state:f[x][y]从起点走到x,y的最短路径
function:f[x][y]=min(f[x][y-1],f[[x-1][y-1])+A[x][y]
initialize:f[0][0] = A[0][0]
//f[i][0] = sum(0,0 -> i,0)
//f[0][i] = sum(0,0 -> 0,i)
注意二维DP的初始化除了要初始化f[0][0] 也要初始化f[i][0],f[0][i]。即第一行,第一列的状态都要初始化。
answer:f[n-1][m-1]
代码实现:
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
//vector<vector<int>> states = grid;
int rows=grid.size(),cols = grid[0].size();
//states[0][0] = grid[0][0];
for(int i=1;i<rows;i++)
grid[i][0] += grid[i-1][0];
for(int j=1;j<cols;j++)
grid[0][j] += grid[0][j-1];
for(int i=1;i<rows;i++)
for(int j=1;j<cols;j++){
grid[i][j] = min(grid[i][j-1],grid[i-1][j])+grid[i][j];
}
return grid[rows-1][cols-1];
}
};
state:f[x][y]从起点走到x,y的最短路径
function:f[x][y]=min(f[x][y-1],f[[x-1][y-1])+A[x][y]
initialize:f[0][0] = A[0][0]
//f[i][0] = sum(0,0 -> i,0)
//f[0][i] = sum(0,0 -> 0,i)
注意二维DP的初始化除了要初始化f[0][0] 也要初始化f[i][0],f[0][i]。即第一行,第一列的状态都要初始化。
answer:f[n-1][m-1]
代码实现:
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
//vector<vector<int>> states = grid;
int rows=grid.size(),cols = grid[0].size();
//states[0][0] = grid[0][0];
for(int i=1;i<rows;i++)
grid[i][0] += grid[i-1][0];
for(int j=1;j<cols;j++)
grid[0][j] += grid[0][j-1];
for(int i=1;i<rows;i++)
for(int j=1;j<cols;j++){
grid[i][j] = min(grid[i][j-1],grid[i-1][j])+grid[i][j];
}
return grid[rows-1][cols-1];
}
};
相关文章推荐
- leetcode---64. Minimum Path Sum
- (Leetcode)64. Minimum Path Sum(medium)
- LeetCode 64. Minimum Path Sum 动态规划
- 【LeetCode】64. Minimum Path Sum
- LeetCode 64. Minimum Path Sum(Python)
- [LeetCode] 64. Minimum Path Sum 最小路径和
- leetcode 64. Minimum Path Sum
- 个人记录-LeetCode 64. Minimum Path Sum
- Leetcode 64. Minimum Path Sum (Medium) (java)
- LeetCode 64. Minimum Path Sum (Python)最优解--Apolo_Shane
- 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【java】
- 【LeetCode】64. Minimum Path Sum
- Leetcode64. Minimum Path Sum
- leetcode64. Minimum Path Sum
- leetcode题解-64. Minimum Path Sum
- leetcode 64. Minimum Path Sum