
思路:
状态转移方程:min[i] [j] = grid[ i ] [ j ] + min(min[ i-1 ] [ j ], min[ i ] [ j-1 ])
class Solution {
public int minPathSum(int[][] grid) {
int m = grid.length;
int n = grid[0].length;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(i==0&&j==0)
grid[i][j] = grid[i][j];
if(i==0&&j!=0)
{
grid[i][j] += grid[i][j-1];
}
if(i!=0&&j==0)
{
grid[i][j] += grid[i-1][j];
}
if(i!=0&&j!=0)
{
grid[i][j] += Math.min(grid[i-1][j],grid[i][j-1]);
}
}
}
return grid[m-1][n-1];
}
}
本文解析了如何使用动态规划解决二维网格中的最小路径和问题,通过状态转移方程展示如何逐步更新每个格子的最短路径,并给出了Solution类的实现。核心在于理解min[i][j]与相邻单元格的关系和递推过程。
8万+

被折叠的 条评论
为什么被折叠?



