leetcode题解-64. Minimum Path Sum
来源:互联网 发布:淘宝充话费赚钱吗 编辑:程序博客网 时间:2024/06/17 19:00
题目:
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.
其实本题和之前的Unique Paths思路是一样的,我们按照列进行遍历即可。每一个值更新为到该点的最小路径之和。代码入下:
public int minPathSum(int[][] grid) { for(int i=0; i<grid[0].length; i++) for(int j=0; j<grid.length; j++){ if(i == 0 && j != 0) grid[j][i] += grid[j-1][i]; else if(j == 0 && i != 0) grid[j][i] += grid[j][i-1]; else grid[j][i] += Math.min(grid[j-1][i], grid[j][i-1]); } return grid[grid.length-1][grid[0].length-1]; }
此外我们还可以使用dp算法,使用额外的存储空间来保存路径和信息,这种方法可以击败98%的用户,代码入下:
public int minPathSum1(int[][] grid) { int[][] memo = new int[grid.length][grid[0].length]; return minPathSumHelper(grid, 0, 0, memo); } public int minPathSumHelper(int[][] grid, int row, int col, int[][] memo) { if(row == grid.length-1 && col == grid[0].length-1) return grid[row][col]; if(memo[row][col] != 0) return memo[row][col]; int rowInc = Integer.MAX_VALUE, colInc = Integer.MAX_VALUE; if(row < grid.length-1) rowInc = minPathSumHelper(grid, row+1, col, memo); if(col < grid[0].length-1) colInc = minPathSumHelper(grid, row, col+1, memo); memo[row][col] = Math.min(rowInc, colInc) + grid[row][col]; return memo[row][col]; }
0 0
- leetcode题解-64. Minimum Path Sum
- LeetCode题解:Minimum Path Sum
- LeetCode 题解(48): Minimum Path Sum
- LeetCode题解——Minimum Path Sum
- [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] 64.Minimum Path Sum
- LeetCode 64. Minimum Path Sum
- 64. Minimum Path Sum LeetCode
- [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 64. Minimum Path Sum
- Java+Jquery实现转盘抽奖系统
- [IMWeb训练营作业]基于vue仿照今日头条文章详情页面
- hybrid之ionic常见问题
- LearnOpenGL学习笔记9:材质
- 日志规范
- leetcode题解-64. Minimum Path Sum
- 前端面试题总结
- 51nod 2级算法题-1092
- 享元模式
- 找不到类型或命名空间名称“type/namespace”(是否缺少 using 指令或程序集引用?)
- leetcode-73 set matrix zeros
- Java AOP
- java中单线程和多线程
- (译)LearnOpenGL实际案例Breakout(四):关卡