动态规划
class Solution {
public int minPathSum(int[][] grid) {
int i = 0;
int j = 0;
int a[][] = new int[grid.length][grid[0].length];
a[0][0] = grid[0][0];
for( i = 1 ; i < grid[0].length ; i++ ){
a[0][i] = a[0][i-1] + grid[0][i];
}
for( j = 1 ; j < grid.length ; j++ ){
a[j][0] = a[j-1][0] + grid[j][0];
}
for( i=1 ; i<grid[0].length ; i++ ){
for( j =1 ; j<grid.length ;j++){
if( a[j-1][i] <= a[j][i-1]){
a[j][i] = a[j-1][i] + grid[j][i];
}else{
a[j][i] = a[j][i-1] + grid[j][i];
}
}
}
return a[grid.length-1][grid[0].length-1];
}
}