LeetCode OJ算法题(六十二):Unique Paths II
来源:互联网 发布:婆媳矛盾 知乎 编辑:程序博客网 时间:2024/06/07 16:19
题目:
Follow up for "Unique Paths":
Now consider if some obstacles are added to the grids. How many unique paths would there be?
An obstacle and empty space is marked as 1
and 0
respectively in the grid.
For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.
[ [0,0,0], [0,1,0], [0,0,0]]
The total number of unique paths is 2
.
Note: m and n will be at most 100.
解法:这里可以利用Unique Path的第二种想法,用一张(m+1)*(n+1)的表result存储到达某点时的路径数,仍然有result[i][j] = result[i-1][j] + result[i][j-1]。唯一需要注意的是,在原始矩阵中为1的位置所对应的result应该为0。且在边界处,只要出现了1,则后面(含该点)所有的result值都应该为0。
public class No62_UniquePathsII {public static void main(String[] args){System.out.println(uniquePathsWithObstacles(new int[][]{{1,0}}));}public static int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length;if(m == 0) return 0;int n = obstacleGrid[0].length; int[][] result = new int[m][n]; int i=0,j=0; for(;i<m;i++){ if(obstacleGrid[i][0]==1){ break; } else result[i][0] = 1; } while(i<m) result[i++][0] = 0; for(;j<n;j++){ if(obstacleGrid[0][j]==1) break; else result[0][j] = 1; } while(j<n) result[0][j++] = 0; for(i=1;i<m;i++){ for(j=1;j<n;j++){ if(obstacleGrid[i][j] != 1) result[i][j] = result[i-1][j] + result[i][j-1]; else result[i][j] = 0; } } return result[m-1][n-1]; }}
0 0
- LeetCode OJ算法题(六十二):Unique Paths II
- LeetCode OJ:Unique Paths II
- LeetCode OJ - Unique Paths II
- LeetCode OJ Unique Paths II
- LeetCode OJ算法题(六十一):Unique Paths
- LeetCode OJ 之 Unique Paths II(不同路径 - 二)
- <LeetCode OJ> 62. / 63. Unique Paths(I / II)
- leetcode oj java Unique Paths II
- LeetCode算法题——Unique Paths I & II
- LeetCode OJ:Unique Paths
- LeetCode OJ Unique Paths
- LeetCode: Unique Paths II
- [Leetcode] Unique Paths II
- LeetCode : Unique Paths II
- [LeetCode] Unique Paths II
- [LeetCode]Unique Paths II
- [leetcode]Unique Paths II
- LeetCode-Unique Paths II
- UIEvent,触摸事件,touchesBegan:, touchesEnded:, touchesMoved:等触摸方法,单击改变自身颜色, 双击改变俯视图颜色
- 线性表相关操作思想
- Ch8 PL/SQL编写触发器
- 理解Cocos2d-x坐标系统
- UML用例图
- LeetCode OJ算法题(六十二):Unique Paths II
- webstrom快捷键大全
- acm steps 1.3.7(排列2)
- netstat 命令
- 一个合格的程序员应该读过哪些书
- Binary Tree Maximum Path Sum
- Jar mismatch! Fix your dependencies
- JavaScript-形象理解面向对象、原型和继承
- android学习笔记——Intent和IntentFilter