美文网首页
Leetcode-64:最小路径和

Leetcode-64:最小路径和

作者: 小北觅 | 来源:发表于2018-11-21 21:59 被阅读9次

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

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

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

    思路:
    状态转移方程:
    dp[i][j] = min{dp[i-1][j], dp[i][j-1]}+ grid[i][j]

    class Solution {
        public int minPathSum(int[][] grid) {
            int m = grid.length;
            int n = grid[0].length;
            int[][] dp = new int[m][n];
            dp[0][0]= grid[0][0];
            for(int i=1;i<m;i++){
                dp[i][0]=dp[i-1][0]+grid[i][0];
            }
            for(int i=1;i<n;i++){
                dp[0][i]=dp[0][i-1]+grid[0][i];
            }
            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];
        }
    }
    

    相关文章

      网友评论

          本文标题:Leetcode-64:最小路径和

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