(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;
    }
}

 

posted @ 2019-08-02 18:14  CodingYM  阅读(120)  评论(0编辑  收藏  举报