classSolution{publicintminPathSum(int[][]grid){int[][] dp =newint[grid.length+1][grid[0].length+1];for(int i =0; i <dp.length;++i) dp[i][0]=Integer.MAX_VALUE;for(int i =0; i < dp[0].length;++i) dp[0][i]=Integer.MAX_VALUE; dp[1][0]=0;// start pointfor(int r =1; r <dp.length;++r){for(int c =1; c < dp[0].length;++c){ dp[r][c]=Math.min(dp[r -1][c], dp[r][c -1])+ grid[r -1][c -1];}}return dp[dp.length-1][dp[0].length-1];}}