LeetCode--Unique Paths II

来源:互联网 发布:php编辑器代码 编辑:程序博客网 时间:2024/06/14 08:45

题目:

接着上一道题目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]