/*
d[0][0] = grid[0][0]
d[i][j] = min(d[i][j-1], d[i-1][j])+grid[i][j]
d[i][0] = d[i-1][0]+grid[i][0]
d[0][j] = d[0][j-1]+grid[0][j];
*/
#define min(a,b) (a>b?b:a)
int minPathSum(int** grid, int gridRowSize, int gridColSize) {
int (*dp)[gridColSize] = calloc(gridRowSize*gridColSize,sizeof(int));
int i,j;
dp[0][0] = grid[0][0];
for(i = 1; i < gridRowSize; i++)
dp[i][0] = dp[i-1][0] + grid[i][0];
for(j = 1; j < gridColSize; j++)
dp[0][j]= dp[0][j-1] + grid[0][j];
for(i = 1; i < gridRowSize; i++)
for(j = 1; j < gridColSize; j++)
dp[i][j] = min(dp[i][j-1], dp[i-1][j])+grid[i][j];
return dp[gridRowSize-1][gridColSize-1];
}
64 minimum path sum
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- dp[row - 1][col - 1] 表示从 [0][0] 到 [row-1][col-1] 位置上加起来的最...
- 动态规划 Python 3 实现: 源代码已上传 Github,持续更新。 源代码已上传至 Github,持续更新中。
- Given a m x n grid filled with non-negative numbers, find...
- 数组中左上角到右下角的最短路径。 思路:DP的解题思路,当前点[i, j]的路径和,为 grid[i][j] + ...
- Given amxngrid filled with non-negative numbers, find a p...