[leetcode] Unique Paths II
2014-06-27 15:43
211 查看
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
For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.
The total number of unique paths is
Note: m and n will be at most 100.
https://oj.leetcode.com/problems/unique-paths-ii/
思路:同Unique Paths一样,也是DP,障碍物特殊处理:
初始化时,第一行和第一列,如果有障碍,则后面都不可达。
计算其他格子时,有障碍的情况为0即可。
View Code
参考:
/article/1347530.html
/article/1347528.html
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.
Note: m and n will be at most 100.
https://oj.leetcode.com/problems/unique-paths-ii/
思路:同Unique Paths一样,也是DP,障碍物特殊处理:
初始化时,第一行和第一列,如果有障碍,则后面都不可达。
计算其他格子时,有障碍的情况为0即可。
public class Solution { public int uniquePathsWithObstacles(int[][] obstacleGrid) { if (obstacleGrid == null || obstacleGrid.length == 0) return 0; int m = obstacleGrid.length; int n = obstacleGrid[0].length; int[][] step = new int[m] ; int i, j; for (i = 0; i < m; i++) { if (obstacleGrid[i][0] == 1) break; else step[i][0] = 1; } for (i = 0; i < n; i++) { if (obstacleGrid[0][i] == 1) break; else step[0][i] = 1; } for (i = 1; i < m; i++) for (j = 1; j < n; j++) { if (obstacleGrid[i][j] == 0) { step[i][j] = step[i - 1][j] + step[i][j - 1]; } } return step[m - 1][n - 1]; } public static void main(String[] args) { int[][] obstacleGrid = { { 0, 0, 0 }, { 0, 1, 0 }, { 0, 0, 0 } }; System.out.println(new Solution().uniquePathsWithObstacles(obstacleGrid)); } }
View Code
参考:
/article/1347530.html
/article/1347528.html
相关文章推荐
- 【leetcode】Unique Paths II
- [LeetCode]--Unique Paths II
- [leetcode]Unique Paths II
- leetcode 063 Unique Paths II
- Unique Paths II 求在矩阵里从左上走到右下的总方法数(有障碍)@LeetCode
- 【LeetCode】Unique Paths I && II && Minimum Path Sum
- (java)leetcode-63:Unique Paths II
- 【leetcode】Unique Paths II
- LeetCode: Unique Paths II
- Leetcode NO.63 Unique Paths II
- [C++]LeetCode: 78 Unique Paths II
- [LeetCode]Unique Paths II
- leetcode先刷_Unique Paths II
- LeetCode - Unique Paths II
- leetcode——63—— Unique Paths II
- LeetCode -- Unique Paths II
- LeetCode 63 — Unique Paths II(C++ Java Python)
- [Leetcode 63, Medium] Unique Paths II
- [LeetCode]Unique Paths II
- leetcode---Unique Paths II---动规