Leetcode 64. Minimum Path Sum 解题报告
来源:互联网 发布:蔡依林 骑士精神 知乎 编辑:程序博客网 时间:2024/06/10 00:23
Leetcode 64. Minimum Path Sum 解题报告
题目
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
Example 1:
[[1,3,1],
[1,5,1],
[4,2,1]]
Given the above grid map, return 7. Because the path 1→3→1→1→1 minimizes the sum.
解释
类似一个迷宫问题,从一个地图的左上角移动到右下角每次只能像下或者向上,每个格子中有一个数字,
问如何走才能使得走过的格子中的数字和最小。这是典型的BFS问题和动态规划,从起点开始扩散,
每次向2个方向扩散影响,同一个格子也之受自己左边的值和上方的值影响,所以可以得出状态转移方程:
cost[i][j] = min(cost[i-1][j]/表示上面的格子/, cost[i][j-1]/表示左边的格子/) + val[i][j]
其中cost表示走到每个格子需要的最小和,val表示每个格子中的数字。
AC代码
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 = 0; i < grid.length; ++i) { for (int j = 0; j < grid[0].length; ++j) { if (i == 0&&j==0) continue; if (i==0&&j>0) dp[i][j] += ( dp[i][j-1] + grid[i][j]); else if (j==0 && i > 0) dp[i][j] += ( dp[i-1][j] + grid[i][j]); else 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]; }}
阅读全文
0 0
- [leetcode] 64. Minimum Path Sum 解题报告
- LeetCode 64. Minimum Path Sum 解题报告
- [Leetcode] 64. Minimum Path Sum 解题报告
- LeetCode 64. Minimum Path Sum 解题报告
- Leetcode 64. Minimum Path Sum 解题报告
- [LeetCode]Minimum Path Sum,解题报告
- 【LeetCode】Minimum Path Sum 解题报告
- [LeetCode] Minimum Path Sum 解题报告
- Leetcode 64. Minimum Path Sum 最小路径和 解题报告
- [LeetCode]Path Sum,解题报告
- 【LeetCode】Path Sum 解题报告
- Leetcode解题笔记 64. Minimum Path Sum [Medium] 动态规划
- leetcode解题方案--064--Minimum Path Sum
- LeetCode-Minimum Size Subarray Sum-解题报告
- [LeetCode]64.Minimum Path Sum
- LeetCode --- 64. Minimum Path Sum
- LeetCode 64.Minimum Path Sum
- [Leetcode] 64. Minimum Path Sum
- img图片四要素
- 冒泡排序 -JAVA详解
- 谈生物识别技术破解
- C++中的转换函数
- poj 2152 Fire (树形dp)
- Leetcode 64. Minimum Path Sum 解题报告
- GIT常用命令备忘
- minipcie转RJ45网口有线以太网卡
- Android JNI层实现文件的read、write与seek操作
- Java互联网架构-深入理解MQ实现分布式事务
- Django 创建第一个项目
- STL 慎重选择删除元素的方法
- Bootstrap 图标文件glyphicons-halflings-regular.woff未找到
- 不使用随机数的洗牌算法实现(C++实现)