您的位置:首页 > 产品设计 > UI/UE

LeetCode--Unique Paths II

2017-10-30 17:53 363 查看
题目:

接着上一道题目Unique Paths,考虑到障碍问题。在matrix(m*n)矩阵中有障碍的地方设为1,否则为0。计算到达右下角的不同路径有多少种。

解题思路:

考虑使用动态规划的方式解题,同上个题目一样,要到达(i,j),则要先到达(i-1,j)或者(i,j-1)。另外若(i,j)位置为障碍物的话,到达(i,j)的路径个数为0.

代码(python):

class Solution(object):
def uniquePathsWithObstacles(self, obstacleGrid):
"""
:type obstacleGrid: List[List[int]]
:rtype: int
"""
for i in range(len(obstacleGrid)):
for j in range(len(obstacleGrid[0])):
if obstacleGrid[i][j]==1:
obstacleGrid[i][j]=0
continue
elif i==0 and j==0:
obstacleGrid[i][j]=1
continue
elif i==0 and j!=0:
obstacleGrid[i][j]=obstacleGrid[i][j-1]
continue
elif i!=0 and j==0:
obstacleGrid[i][j]=obstacleGrid[i-1][j]
continue
else:
obstacleGrid[i][j]=obstacleGrid[i-1][j]+obstacleGrid[i][j-1]
return obstacleGrid[len(obstacleGrid)-1][len(obstacleGrid[0])-1]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: