Leetcode(ジャワ) -

非負整数m×nのメッシュ与えられ、下左から右への経路を見つけるようにパスの最小数の合計。

注:あなたが唯一のダウンまたは右に一歩を移動することができます。

例:

入力:
[
  [1,3,1]、
  [1,5,1]、
  [4,2,1]
]
出力:7
説明:最小和ためパス→1→1→3 1→ 1 における。

 

アイデア:DP

class Solution {
    public int minPathSum(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;
        int[][] dp = new int[m][n];
        int count = 0;
        for(int i=0;i<m;i++)
        {
            count += grid[i][0];
            dp[i][0] = count;
        }
        count = 0;
        for(int i=0;i<n;i++)
        {
            count += grid[0][i];
            dp[0][i] = count;
        }

        if(m==0)
            return dp[0][n-1];
        if(n==0)
            return dp[m-1][0];
        
        for(int i=1;i<m;i++)
        {
            for(int j=1;j<n;j++)
            {
                dp[i][j] = Math.min(dp[i-1][j],dp[i][j-1])+grid[i][j];
            }
        }
        return dp[m-1][n-1];
    }
}

 

公開された241元の記事 ウォン称賛34 ビュー20000 +

おすすめ

転載: blog.csdn.net/qq_38905818/article/details/104357709