Leetcode64. 最小路径和(经典dp)

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode64. 最小路径和(经典dp)相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/minimum-path-sum/

解题思路

对于点 d p [ m , n ] dp[m, n] dp[m,n]到他的最短路径 m i n ( d p [ m − 1 , n ] , d p [ m , n − 1 ] ) min(dp[m - 1, n], dp[m, n - 1]) min(dp[m1,n],dp[m,n1]),由于只能向下或者向右走,所以上边界和左边由于只有一个路径可以到。

代码

class Solution {
    public int minPathSum(int[][] grid) {
        int[][] dp = new int[grid.length][grid[0].length];
        dp[0][0] = grid[0][0];  //初始化
        for(int i = 1; i < grid[0].length; i++) //上边界初始化
            dp[0][i] = grid[0][i] + dp[0][i - 1];
        for(int i = 1; i < grid.length; i++)    //左边界初始化
            dp[i][0] = grid[i][0] + dp[i - 1][0];   
        for(int i = 1; i < grid.length; i++)    //对于点dp[m, n]到他的最短路径min(dp[m - 1, n], dp[m, n - 1])
            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];
    }
}

复杂度分析

  • 时间复杂度: O ( n ∗ m ) O(n * m) O(nm)
  • 空间复杂度: O ( n ∗ m ) O(n * m) O(nm)

以上是关于Leetcode64. 最小路径和(经典dp)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 64. Minimum Path Sum 最小路径和(中等)

leetcode 每日一题 64. 最小路径和

leetcode 每日一题 64. 最小路径和

leetcode64 最小路径和(Medium)

Leetcode 三角形最小路径和

leetcode 64. Minimum Path Sum(最小路径和)