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]
接着上一道题目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]
相关文章推荐
- LeetCode | Unique Paths I,II
- 【leetcode】Unique Paths II
- [LeetCode] Unique Paths && Unique Paths II && Minimum Path Sum (动态规划之 Matrix DP )
- 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
- 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:63. Unique Paths II
- leetcode - Unique Paths II
- [LeetCode]-Unique PathsII 有障碍的矩阵中求两点间所有路线条数
- LeetCode Unique Paths II