public class MinimumPath {
public static int minPathSum(int[][] arr){
if(arr==null||arr.length==0)
return 0;
int[][]dp=new int[arr.length][arr[0].length];
dp[0][0]=arr[0][0];
for(int i=1;i<dp.length;i++)
dp[i][0]=arr[i][0]+dp[i-1][0];
for(int j=1;j<dp[0].length;j++){
dp[0][j]=arr[0][j]+dp[0][j-1];
}
for(int i=1;i<dp.length;i++){
for(int j=1;j<dp[0].length;j++){
dp[i][j]=Math.min(dp[i-1][j], dp[i][j-1])+arr[i][j];
}
}
return dp[dp.length-1][dp[0].length-1];
}
}