public class Solution {
public static void main(String[] args){
Solution s = new Solution();
int[][] g = {{1,2},{1,1}};
int r = s.minPathSum(g);
}
public int minPathSum(int[][] grid) {
int m = grid.length;
if(m==0) return 0;
int n = grid[0].length;
int[][] dp = new int[m][n];
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(i-1>=0&&j-1>=0){
// System.out.println(dp[i-1][j]>dp[i][j-1]?dp[i][j-1]:dp[i-1][j]);
// if(dp[i-1][j]>dp[i][j-1]) dp[i][j] = dp[i][j-1] + grid[i][j];
// else dp[i][j] = dp[i-1][j] + grid[i][j];
dp[i][j] = (dp[i-1][j]>dp[i][j-1]?dp[i][j-1]:dp[i-1][j]) + grid[i][j];
}
else{
if(i==0&&j==0) dp[i][j] = grid[0][0];
if(i==0&&j>0) dp[i][j] = dp[i][j-1] + grid[i][j];
if(i>0&&j==0) dp[i][j] = dp[i-1][j] + grid[i][j];
}
}
}
return dp[m-1][n-1];
}
}
leetcode 64. Minimum Path Sum
最新推荐文章于 2021-07-23 19:32:26 发布