描述 :
给定一个包含非负整数的?m?x?n
?网格?grid
?,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
题目 :
LeetCode 64.最小路径和
解析 :
class Solution {
public int minPathSum(int[][] grid) {
int m = grid.length;
int n = grid[0].length;
int[][] arr = new int[m][n];
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
if(i == 0 && j == 0){
arr[i][j] = grid[i];
}else{
int top = i - 1 >= 0 ? arr[i - 1][j] + grid[i][j] : Integer.MAX_VALUE;
int left = j - 1 >= 0 ? arr[i][j - 1] + grid[i][j] :
Integer.MAX_VALUE;
arr[i][j] = Math.min(top,left);
}
}
}
return arr[m - 1][n - 1];
}
}