(Easy) Minimum Path Sum
class Solution { public int minPathSum(int[][] grid) { //border scenario int i = grid.length; int j = grid[0].length; int [][] dp = new int[i][j]; if (i ==0 ||j==0){ return 0; } dp[0][0] = grid[0][0]; //first row for(int t =1; t<i; t++){ dp[t][0] = dp[t-1][0]+grid[t][0]; } //first column for(int k = 1; k<j; k++){ dp[0][k] = dp[0][k-1]+grid[0][k]; } //other grids for(int m = 1 ; m < i; m++){ for(int z = 1; z< j; z++){ dp[m][z] = Min(dp[m-1][z],dp[m][z-1])+grid[m][z]; } } return dp[i-1][j-1]; } public int Min(int a , int b){ return a<b? a:b; } }