给定一个由非负整数填充的m x n的二维数组,现在要从二维数组的左上角走到右下角,请找出路径上的所有数字之和最小的路径。
注意:你每次只能向下或向右移动。
动态规划经典题
class Solution {
public:
/**
*
* @param grid int整型vector<vector<>>
* @return int整型
*/
int minPathSum(vector<vector<int> >& grid) {
vector<vector<int>>a=grid;
int i,j;
for(i=0;i<a.size();i++){
for(j=0;j<a[0].size();j++){
if(i==0&&j==0)
continue;
else if(i==0)
a[0][j]=a[0][j-1]+a[0][j];
else if(j==0)
a[i][0]=a[i-1][0]+a[i][0];
else
{
a[i][j]=min(a[i-1][j],a[i][j-1])+a[i][j];
}
}
}
return a[i-1][j-1];
}
};

本文介绍了一种使用动态规划求解二维数组中从左上角到右下角的最小路径和的方法,仅允许向下或向右移动。通过逐步更新每个单元格的最小路径和,最终得到目标位置的最小总和。
261

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



