[Leetcode 63, Medium] Unique Paths II
来源:互联网 发布:社交网络 thunder 编辑:程序博客网 时间:2024/06/06 07:03
Problem:
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
Analysis:
Solutions:
C++:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int m = obstacleGrid.size(); int n = obstacleGrid[0].size(); if(m == 0 && n == 0) return 0; if(m == 0 || n == 0) { return 1; } vector<vector<int> > num_of_paths; for(int row = 0; row < m; ++row) { vector<int> new_row; for(int col = 0; col < n; ++col) new_row.push_back(1); num_of_paths.push_back(new_row); } for(int i = 0; i < n; ++i) { if(obstacleGrid[0][i] == 1) { for(int j = i; j < n; ++j) num_of_paths[0][j] = 0; break; } } for(int i = 0; i < m; ++i) { if(obstacleGrid[i][0] == 1) { for(int j = i; j < m; ++j) num_of_paths[j][0] = 0; break; } } for(int i = 1; i < m; ++i) { for(int j = 1; j < n; ++j) { if(obstacleGrid[i][j] == 1) num_of_paths[i][j] = 0; else num_of_paths[i][j] = num_of_paths[i - 1][j] + num_of_paths[i][j - 1]; } } return num_of_paths[m - 1][n - 1]; }Java:
Python:
0 0
- [Leetcode 63, Medium] Unique Paths II
- 【LeetCode】(63)Unique Paths II(Medium)
- LeetCode-63-Unique Paths II(动规)-Medium
- Leetcode 63. Unique Paths II (Medium) (cpp)
- Leetcode 63. Unique Paths II (Medium) (java)
- 【LeetCode】(63)Unique Paths (Medium)
- [Medium]Unique Paths II
- Medium 63题 Unique Paths II
- LeetCode 63: Unique Paths II
- [leetcode 63] Unique Paths II
- [LeetCode 63]Unique Paths II
- leetcode || 63、Unique Paths II
- Unique Paths II - LeetCode 63
- Leetcode[63]-Unique Paths II
- Leetcode #63 Unique Paths II
- leetcode 63: Unique Paths II
- Leetcode#63||Unique Paths II
- leetcode 63:Unique Paths II
- LightOJ1038-Race to 1 Again
- Android overlay系统
- ------------参数传递的四种形式----- URL,超链接,js,form表单
- github
- 数组及函数的应用篇
- [Leetcode 63, Medium] Unique Paths II
- ZOJ 3630 Information(Tarjanq)
- 栈 堆 易错的地方(字符串拷贝 以及 一个重要的指针用法)
- 一个很笨的字体勾边的方法
- HDUOJ1095
- Gym 100712F Travelling Salesman(二分+并查集)
- 状态压缩DP noi2001炮兵阵地
- [Leetcode 64, Medium] Minimum Path Sum
- windows 7 系统WIN+R默认以管理员身份运行bug