动态规划(矩阵路径)---矩阵的最小路径和


矩阵的最小路径和

64. Minimum Path Sum (Medium)

[[1,3,1],
 [1,5,1],
 [4,2,1]]
Given the above grid map, return 7. Because the path 1→3→1→1→1 minimizes 

题目描述:

  求从矩阵的左上角到右下角的最小路径和,每次只能向右和向下移动。

思路分析:

  动态规划思想,用dp[ i ] [ j ]表示从左上角到坐标为(i,j)元素的最小路径和。

则 dp[i] [j]=min(dp[i-1] [j],dp[i] [ j-1])+grid[i] [j]

代码:

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM