动态规划——minimum-path-sum
来源:互联网 发布:怎么在淘宝卖二手东西 编辑:程序博客网 时间:2024/06/05 16:50
题目描述
一个 m x n 的矩阵填充着非负整数,找到从左上角到右下角和最小的路径。
注:每一步只能向下一格走或向右一格走。
递归例程:
public class Solution { public int minPathSum(int[][] grid) { if(grid == null||grid.length == 0||grid[0].length == 0) return 0; return help(grid,0,0); } public int help(int[][] grid,int row,int col) { if(row == grid.length-1&&col == grid[0].length-1) return grid[row][col];//达到bottom right时返回该值 if(row == grid.length-1&&col!=grid[0].length-1)//到达最后一行的情况 return grid[row][col]+help(grid,row,col+1); if(col == grid[0].length-1&&row!=grid.length-1)//到达最后一列的情况 return grid[row][col]+help(grid,row+1,col); else//一般情况 { int down=help(grid,row+1,col); int right=help(grid,row,col+1); if(down<right) return down+grid[row][col]; else return right+grid[row][col]; } }}
DP例程:
public class Solution { public int minPathSum(int[][] grid) { if(grid == null||grid.length == 0||grid[0].length == 0) return 0; int row=grid.length; int col=grid[0].length; int[][] dp=new int[row][col]; //第一个值初始化 dp[row-1][col-1]=grid[row-1][col-1]; //对最下行初始化 for(int j=col-2;j>=0;j--) { dp[row-1][j]=dp[row-1][j+1]+grid[row-1][j]; } //对最右列初始化 for(int i=row-2;i>=0;i--) { dp[i][col-1]=dp[i+1][col-1]+grid[i][col-1]; } //general for(int i=row-2;i>=0;i--) { for(int j=col-2;j>=0;j--) { int down=dp[i+1][j]; int right=dp[i][j+1]; dp[i][j]=down<right?down+grid[i][j]:right+grid[i][j]; } } return dp[0][0]; }}
.
0 0
- 动态规划——minimum-path-sum
- 13.8—动态规划—Minimum Path Sum
- 【动态规划】minimum-path-sum
- 动态规划----Minimum Path Sum
- [LeetCode] [动态规划] Minimum Path Sum
- Leetcode 动态规划 Minimum Path Sum
- LeetCode || Minimum Path Sum 动态规划思想
- LeetCode Minimum Path Sum(动态规划)
- 动态规划之Minimum Path Sum
- 64. Minimum Path Sum 动态规划
- leetcode-64-Minimum Path Sum 动态规划
- leetcode[63] Minimum Path Sum 动态规划
- LeetCode 64. Minimum Path Sum 动态规划
- LeetCode—Minimum Path Sum 二维数组最小路径,动态规划
- LeetCode-64-Minimum Path Sum(动态规划)-Medium
- 动态规划--最小路径和(Minimum Path Sum)
- leetcode 64. Minimum Path Sum-最小路径和|动态规划
- 64. Minimum Path Sum 类别:动态规划 难度:medium
- fastDFS学习
- android设置状态栏颜色
- 英语每日一读
- 前端实践--JavaScript--动画(一)
- 集合类(三)
- 动态规划——minimum-path-sum
- Redis系列学习笔记10 发布与订阅
- hdu 1716 排列2
- 【leetcode】17. Letter Combinations of a Phone Number
- 可以确保您下载到免费的最新版本无插件绿色软件
- Cocos开发VR菜鸟宝典 第二讲:VR设备选择
- new 和alloc 的区别
- 解决Ubuntu环境下vim和QT中文输入问题
- 如何通过JMX远程监控Solr?