标签:== 输入 包含 中间 示例 lan 输出 leetcode 路径
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
示例:
输入:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
输出: 7
三种情况:
代码
class Solution {
public int minPathSum(int[][] grid) {
int n = grid.length;
int m = grid[0].length;
int[][] f = new int[n+10][m+10];
f[0][0] = grid[0][0];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(i==0&j==0) continue;
if(i==0){
f[i][j] = f[i][j-1] + grid[i][j];
}else if(j==0){
f[i][j] = f[i-1][j] + grid[i][j];
}else{
f[i][j] = Math.min(f[i-1][j],f[i][j-1]) + grid[i][j];
}
}
}
return f[n-1][m-1];
}
}
解释: 因为路径 1→3→1→1→1 的总和最小。
标签:== 输入 包含 中间 示例 lan 输出 leetcode 路径
原文地址:https://www.cnblogs.com/vccyb/p/13721615.html