動態規划(矩陣路徑)---矩陣的最小路徑和


矩陣的最小路徑和

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