思路:
动态规划
一个点只能由左边点或者上边点到达。这样我们做个比较就好
record[i][j]=Math.min(record[i][j-1],record[i-1][j])+grid[i][j];
public class Solution {
public int minPathSum(int[][] grid) {
int n=grid.length;
int m=grid[0].length;
int record[][]=new int [n][m];
record[0][0]=grid[0][0];
for(int i=1;i<m;i++)
{
record[0][i]=record[0][i-1]+grid[0][i];
}
for(int i=1;i<n;i++)
{
record[i][0]=record[i-1][0]+grid[i][0];
}
for(int i=1;i<n;i++)
{
for(int j=1;j<m;j++)
{
record[i][j]=Math.min(record[i][j-1],record[i-1][j])+grid[i][j];
}
}
return record[n-1][m-1];
}
}
本文介绍了一种使用动态规划解决二维网格中从左上角到右下角的最小路径和问题的方法。通过构建记录矩阵,该算法确保每个点只从其左侧或上方的点到达,从而计算出最优路径。
2679

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



