[leetcode] Unique Path II
来源:互联网 发布:mac虚拟机安装win7 编辑:程序博客网 时间:2024/05/17 22:54
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
.
思路: unique path 1 很trivial了,直接动态规划,2的话要考虑特殊情况,比如第一行和第一列初始化的时候,一旦遇到1,则后面的都无法到达,则后面的点都是0。再计算其他点的时候,考虑上面或者左面存在0点的时候(0表示0种方法到达该点)。
class Solution: # @param obstacleGrid, a list of lists of integers # @return an integer def uniquePathsWithObstacles(self, obstacleGrid): m = len(obstacleGrid) n = len(obstacleGrid[0]) sum = [[0 for col in range(n)] for row in range(m)] for i in range(m): if obstacleGrid[i][0] == 1: break else: sum[i][0] = 1 for i in range(n): if obstacleGrid[0][i] == 1: break else: sum[0][i] = 1 for i in range(1,m): for j in range(1,n): if obstacleGrid[i][j] == 1: sum[i][j] = 0 elif sum[i-1][j] == 0 and sum[i][j-1] == 0: sum[i][j] = 0 elif sum[i-1][j] == 0: sum[i][j] = sum[i][j-1] elif sum[i][j-1] == 0: sum[i][j] = sum[i-1][j] else: sum[i][j] = sum[i][j-1] + sum[i-1][j] return sum[m-1][n-1]
0 0
- [Leetcode]Unique Path II
- [leetcode] Unique Path II
- Unique Path II--LeetCode
- [Leetcode]Unique Path II
- Leetcode Unique Path II
- LeetCode 62. Unique Path II
- [Leetcode] 63. Unique Path II
- 63. Unique Path II Leetcode Python
- [leetcode题后感]unique path I、 II
- [LeetCode] Unique Paths、Unique Paths II、Minimum Path Sum
- leetcode Unique Paths & Unique Paths II & Minimum Path Sum
- Leetcode: Unique Path I & II, Minimum Path Sum, Triangle
- Unique Path II
- 10.3 Unique Path II
- Unique path ii
- Unique Path II
- Unique Path II
- 【LeetCode】Unique Paths I && II && Minimum Path Sum
- asp网站程序启用浏览器和代理缓存
- SQLMAP源码阅读之盖览sqlmap.py
- 给webstorm配置ftp
- jquery 实现 点击按钮后倒计时效果,多用于实现发送手机验证码、邮箱验证码
- math.h
- [leetcode] Unique Path II
- java实现鼠标和键盘动作后台监听
- nginx 反向代理 端口设置问题
- Java复制文件工具类
- ECshop生成网站地图url
- spring使用quartz发布定时任务
- 删除 Provisioning Profile
- js 关于双击会触发两次单击的解决方法
- 如何在后台运行Heritrix