美文网首页
LeetCode 64 最小路径和

LeetCode 64 最小路径和

作者: 萨缪 | 来源:发表于2019-10-31 19:42 被阅读0次

64. 最小路径和

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

示例:

输入:

[

[1,3,1],

[1,5,1],

[4,2,1]
]
输出: 7
解释: 因为路径 1→3→1→1→1 的总和最小。

这道题其实很简单,是我一开始用惯性思维想复杂了...
思路就是通过动态规划先得出每一步之后现在位置上的和,这个和是之前走的位置上数字的所有和加上现在位置上的数字。
至于怎么判断下一步是走右边还是走下边,那么就得每走一步,都要判断该位置右边和下边的数哪个小,然后走小的那个。
那么边界问题怎么解决呢?一共有四种情况
首先一个就是如果现在的位置有左边界,那么上一个位置只能从上面来,
即为当i !- 0 j = 0 时 dp[i][j] = dp[i-1][j] + dp[i][j];
如果现在的位置有上边界,那么上一个位置只能从左边来,
即为当i = 0 j != 0 时 dp[i][j] = dp[i][j-1] + dp[i][j];
如果现在的位置既没有左边的边界,也没有上边的边界时,
即为当i !- 0 j != 0 时 dp[i][j] = dp[i][j] + math.min(dp[i-1][j], dp[i][j-1]);
最后一种情况显而易见,不做讨论
下面 源代码如下:
很简单 也容易理解

class Solution {
    public int minPathSum(int[][] grid) {
        for(int i = 0; i < grid.length; i++) {
            for(int j = 0; j < grid[0].length; j++) {
                if(i == 0 && j == 0) continue;
                else if(i == 0)  grid[i][j] = grid[i][j - 1] + grid[i][j];
                else if(j == 0)  grid[i][j] = grid[i - 1][j] + grid[i][j];
                else grid[i][j] = Math.min(grid[i - 1][j], grid[i][j - 1]) + grid[i][j];
            }
        }
        return grid[grid.length - 1][grid[0].length - 1];
    }
}

相关文章

  • LeetCode 64. 最小路径和 | Python

    64. 最小路径和 题目来源:力扣(LeetCode)https://leetcode-cn.com/proble...

  • 【D13】最小路径和 & 爬楼梯 (LC 64&70)

    64. 最小路径和[https://leetcode-cn.com/problems/minimum-path-s...

  • [LeetCode]64、最小路径和

    题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。...

  • LeetCode 64 最小路径和

    64. 最小路径和 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总...

  • Leetcode 64 最小路径和

    最小路径和 题目 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和...

  • leetcode 64最小路径和

    很简单的题目 多打了一个等号 结果找错找了半天 也是使用了dp来完成这个题目这应该算是一道用来比较好理解dp的一道题目

  • Leetcode-64:最小路径和

    描述:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说...

  • Leetcode64最小路径和

    题目 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明...

  • leetcode#64 最小路径和

    题目 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说...

  • leetcode_64最小路径和

    直接在原矩阵上改数据,控制第一行和第一列更新为当前值和前面或上面的值累加,其他位置则判断从上面还是左边的值更小并累...

网友评论

      本文标题:LeetCode 64 最小路径和

      本文链接:https://www.haomeiwen.com/subject/zqtxbctx.html