leetcode oj java Unique Paths II
2016-12-20 16:21
585 查看
一、题目描述:
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
in the grid.
For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.
The total number of unique paths is
二、解决方法:
Unique Paths 的解决方法在上一篇文章中写出(动态规划) http://blog.csdn.net/u011060119/article/details/53764150
这次增加了障碍物,我们需要在障碍物的部分把路径数目置0,(障碍物垂直向下和水平向右都需要置0)
三、代码:
package T12;
/**
* @author 作者 : xcy
* @version 创建时间:2016年12月20日 下午4:03:08
* 类说明
*/
public class t63 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] obstacleGrid = { { 0, 0 }, { 1, 1 }, { 0, 0 } };
System.out.println(uniquePathsWithObstacles(obstacleGrid));
}
public static int uniquePathsWithObstacles(int[][] obstacleGrid) {
int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
if (obstacleGrid[0][0] == 1) {
return 0;
}
int[][] re = new int[m]
;
for (int i = 0; i < m; i++) {
if (obstacleGrid[i][0] == 0) {
re[i][0] = 1;
} else {
break;
}
}
for (int j = 0; j < n; j++) {
if (obstacleGrid[0][j] == 0) {
re[0][j] = 1;
} else {
break;
}
}
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
if (obstacleGrid[i][j] == 0) {
re[i][j] = re[i - 1][j] + re[i][j - 1];
}
}
}
return re[m - 1][n - 1];
}
}
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
1and
0respectively
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.
二、解决方法:
Unique Paths 的解决方法在上一篇文章中写出(动态规划) http://blog.csdn.net/u011060119/article/details/53764150
这次增加了障碍物,我们需要在障碍物的部分把路径数目置0,(障碍物垂直向下和水平向右都需要置0)
三、代码:
package T12;
/**
* @author 作者 : xcy
* @version 创建时间:2016年12月20日 下午4:03:08
* 类说明
*/
public class t63 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] obstacleGrid = { { 0, 0 }, { 1, 1 }, { 0, 0 } };
System.out.println(uniquePathsWithObstacles(obstacleGrid));
}
public static int uniquePathsWithObstacles(int[][] obstacleGrid) {
int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
if (obstacleGrid[0][0] == 1) {
return 0;
}
int[][] re = new int[m]
;
for (int i = 0; i < m; i++) {
if (obstacleGrid[i][0] == 0) {
re[i][0] = 1;
} else {
break;
}
}
for (int j = 0; j < n; j++) {
if (obstacleGrid[0][j] == 0) {
re[0][j] = 1;
} else {
break;
}
}
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
if (obstacleGrid[i][j] == 0) {
re[i][j] = re[i - 1][j] + re[i][j - 1];
}
}
}
return re[m - 1][n - 1];
}
}
相关文章推荐
- LeetCode 63 — Unique Paths II(C++ Java Python)
- LeetCode_OJ【63】Unique Paths II
- LeetCode OJ Unique Paths II
- leetcode JAVA Unique Paths II 难度系数3 3.21
- [LeetCode][Java] Unique Paths II
- 【LeetCode-面试算法经典-Java实现】【063-Unique Paths II(唯一路径问题II)】
- 【leetcode】第63题 Unique Paths II 题目+解析+JAVA代码
- 【LeetCode-面试算法经典-Java实现】【063-Unique Paths II(唯一路径问题II)】
- (java)leetcode-63:Unique Paths II
- [LeetCode][Java] Unique Paths II
- Java for LeetCode 063 Unique Paths II
- [Leetcode] Unique Paths II (Java)
- Unique Paths II leetcode java
- 【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