欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > LeetCode hot100-92

LeetCode hot100-92

2025/4/25 16:40:11 来源:https://blog.csdn.net/alike_meng/article/details/144616965  浏览:    关键词:LeetCode hot100-92

https://leetcode.cn/problems/minimum-path-sum/description/?envType=study-plan-v2&envId=top-100-liked

64. 最小路径和
已解答
中等
相关标签
相关企业
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。

dp[i][j] 表示从左上角出发到 (i,j) 位置的最小路径和。显然,dp[0][0]=grid[0][0]。对于 dp 中的其余元素,通过以下状态转移方程计算元素值。

当 i>0 且 j=0 时,dp[i][0]=dp[i−1][0]+grid[i][0]。

当 i=0 且 j>0 时,dp[0][j]=dp[0][j−1]+grid[0][j]。

当 i>0 且 j>0 时,dp[i][j]=min(dp[i−1][j],dp[i][j−1])+grid[i][j]。

最后得到 dp[m−1][n−1] 的值即为从网格左上角到网格右下角的最小路径和。

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词