标签:初始值 int sum 元素 牛客 length minimum grid minimumPathSum
题目描述如下:
动态规划的解法:
1.状态的定义
2.状态转换方程
3.初始值
4.返回值
就本题而言:
grid[][]为原数组
```
1.状态的定义 F[i][j]表示从F[0][0]到该位置所经历的最小路径和
2.状态转换方程 F[i][j]=min(F[i][j-1],F[i-1][j])+grid[i][j]
3.初始值 F[0][0]=grid[0][0]
4.返回值 F[m-1][n-1]
链接:https://www.nowcoder.com/questionTerminal/23462ed010024fcabb7dbd3df57c715e?toCommentId=6010099
来源:牛客网
public class Solution{
//先对最左一列和最上一行特殊处理,因为这样的一列和一行中每个元素的来路只有一条,它是固定的。
//然后剩下的内层的矩形框中,每个元素的来路可能来自于左面元素,也有可能来自于上面元素。再加上
//当前元素值就是走到该位置经历的路径最小和
public int minPathSum(int[][] grid) {
int m=grid.length;
int n=grid[0].length;
if(m==0||n==0){
return 0;
}
int[][] minimumPathSum=new int[m][n];
minimumPathSum[0][0]=grid[0][0];
for (int i=1;i<m;i++){
minimumPathSum[i][0]=grid[i][0]+minimumPathSum[i-1][0];
}//lie
for (int j=1;j<n;j++){
minimumPathSum[0][j]=grid[0][j]+minimumPathSum[0][j-1];
}
for (int i=1;i<m;i++){
for (int j=1;j<n;j++){
minimumPathSum[i][j]=Math.min(minimumPathSum[i][j-1],minimumPathSum[i-1][j])+grid[i][j];
}
}
return minimumPathSum[m-1][n-1];
}
}
标签:初始值,int,sum,元素,牛客,length,minimum,grid,minimumPathSum 来源: https://blog.51cto.com/14232658/2490611
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。