【leetcode】64. Minimum Path Sum
2016-10-22 23:55
309 查看
一、题目描述
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.
思路:对于一个m * n 的网格,只能向下、向右走。假设sum[i][j] 表示走到第[i][j]个空格时路径的最小值。那么对于第一行的空格有公式:sum[0][j] = sum[0][j-1] + grid[0][j],对于第一列的空格有公式:sum[i][0] = sum[i-1][0] + grid[i][0],对于中间的空格有公式:sum[i][j] = min(sum[i-1][j], sum[i][j-1])
+ grid[i][j]。初始值sum[0][0]=grid[0][0]。从左上走到右下的最短路径就是sum[m-1][n-1]。
c++代码(12ms,50.29%)
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int m=grid.size();
int n=grid[0].size();
int sum[m]
;
sum[0][0]=grid[0][0];
int i,j;
//m为高,n为宽
for(i=1; i<m; i++){
sum[i][0]=sum[i-1][0]+grid[i][0];
}
for(i=1; i<n; i++){
sum[0][i]=sum[0][i-1]+grid[0][i];
}
for(i=1;i<m;i++){
for(j=1;j<n;j++){
sum[i][j]=min(sum[i][j-1],sum[i-1][j])+grid[i][j];
}
}
return sum[m-1][n-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.
思路:对于一个m * n 的网格,只能向下、向右走。假设sum[i][j] 表示走到第[i][j]个空格时路径的最小值。那么对于第一行的空格有公式:sum[0][j] = sum[0][j-1] + grid[0][j],对于第一列的空格有公式:sum[i][0] = sum[i-1][0] + grid[i][0],对于中间的空格有公式:sum[i][j] = min(sum[i-1][j], sum[i][j-1])
+ grid[i][j]。初始值sum[0][0]=grid[0][0]。从左上走到右下的最短路径就是sum[m-1][n-1]。
c++代码(12ms,50.29%)
class Solution {
public:
int minPathSum(vector<vector<int>>& grid) {
int m=grid.size();
int n=grid[0].size();
int sum[m]
;
sum[0][0]=grid[0][0];
int i,j;
//m为高,n为宽
for(i=1; i<m; i++){
sum[i][0]=sum[i-1][0]+grid[i][0];
}
for(i=1; i<n; i++){
sum[0][i]=sum[0][i-1]+grid[0][i];
}
for(i=1;i<m;i++){
for(j=1;j<n;j++){
sum[i][j]=min(sum[i][j-1],sum[i-1][j])+grid[i][j];
}
}
return sum[m-1][n-1];
}
};
相关文章推荐
- 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
- [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